static
public
string
GetChineseSpell(
string
strText )
{
int len = strText.Length;
string myStr = "" ;
for ( int i = 0 ;i < len;i ++ )
{
myStr += getSpell( strText.Substring( i, 1 ) );
}
return myStr;
}
static public string getSpell( string cnChar )
{
byte [] arrCN = Encoding.Default.GetBytes( cnChar );
if ( arrCN.Length > 1 )
{
int area = ( short )arrCN[ 0 ];
int pos = ( short )arrCN[ 1 ];
int code = ( area << 8 ) + pos;
int [] areacode = { 45217 , 45253 , 45761 , 46318 , 46826 , 47010 , 47297 , 47614 , 48119 , 48119 , 49062 , 49324 , 49896 , 50371 , 50614 , 50622 , 50906 , 51387 , 51446 , 52218 , 52698 , 52698 , 52698 , 52980 , 53689 , 54481 };
for ( int i = 0 ;i < 26 ;i ++ )
{
int max = 55290 ;
if ( i != 25 ) max = areacode[i + 1 ];
if ( areacode[i] <= code && code < max )
{
return Encoding.Default.GetString( new byte []{( byte )( 65 + i )} );
}
}
return " * " ;
}
else return cnChar;
}
{
int len = strText.Length;
string myStr = "" ;
for ( int i = 0 ;i < len;i ++ )
{
myStr += getSpell( strText.Substring( i, 1 ) );
}
return myStr;
}
static public string getSpell( string cnChar )
{
byte [] arrCN = Encoding.Default.GetBytes( cnChar );
if ( arrCN.Length > 1 )
{
int area = ( short )arrCN[ 0 ];
int pos = ( short )arrCN[ 1 ];
int code = ( area << 8 ) + pos;
int [] areacode = { 45217 , 45253 , 45761 , 46318 , 46826 , 47010 , 47297 , 47614 , 48119 , 48119 , 49062 , 49324 , 49896 , 50371 , 50614 , 50622 , 50906 , 51387 , 51446 , 52218 , 52698 , 52698 , 52698 , 52980 , 53689 , 54481 };
for ( int i = 0 ;i < 26 ;i ++ )
{
int max = 55290 ;
if ( i != 25 ) max = areacode[i + 1 ];
if ( areacode[i] <= code && code < max )
{
return Encoding.Default.GetString( new byte []{( byte )( 65 + i )} );
}
}
return " * " ;
}
else return cnChar;
}