Paste the source code below.
Copy codeThe Code is as follows: public static class ChineseToPinYin
{
Private static readonly Dictionary <int, string> CodeCollections = new Dictionary <int, string> {
{-20319, "a" },{-20317, "ai" },{-20304, "an" },{-20295, "ang" },{-20292, "ao" },{-20283, "ba" },{-20265, "bai "},
{-20257, "ban" },{-20242, "bang" },{-20230, "bao" },{-20051, "bei" },{-20036, "ben" },{-20032, "beng" },{-20026, "bi "}
, {-20002, "bian" },{-19990, "biao" },{-19986, "bie" },{-19982, "bin "}, {-19976, "bing" },{-19805, "bo "},
{-19784, "bu" },{-19775, "ca" },{-19774, "cai" },{-19763, "can" },{-19756, "cang" },{-19751, "cao" },{-19746, "ce "},
{-19741, "ceng" },{-19739, "cha" },{-19728, "chai" },{-19725, "chan" },{-19715, "chang" },{-19540, "chao "},
{-19531, "che" },{-19525, "chen" },{-19515, "cheng" },{-19500, "chi" },{-19484, "chong" },{-19479, "chou "},
{-19467, "chu" },{-19289, "chuai" },{-19288, "chuan" },{-19281, "chuang" },{-19275, "chui" },{-19270, "chun "},
{-19263, "chuo" },{-19261, "ci" },{-19249, "cong" },{-19243, "cou" },{-19242, "cu" },{-19238, "cuan "},
{-19235, "cui" },{-19227, "cun" },{-19224, "cuo" },{-19218, "da" },{-19212, "dai" },{-19038, "dan" },{-19023, "dang "},
{-19018, "dao" },{-19006, "de" },{-19003, "deng" },{-18996, "di" },{-18977, "dian" },{-18961, "diao" },{-18952, "die "}
, {-18783, "ding" },{-18774, "diu" },{-18773, "dong" },{-18763, "dou "}, {-18756, "du" },{-18741, "duan "},
{-18735, "dui" },{-18731, "dun" },{-18722, "duo" },{-18710, "e" },{-18697, "en" },{-18696, "er" },{-18526, "fa "},
{-18518, "fan" },{-18501, "fang" },{-18490, "fei" },{-18478, "fen" },{-18463, "feng" },{-18448, "fo" },{-18447, "fou "}
, {-18446, "fu" },{-18239, "ga" },{-18237, "gai" },{-18231, "gan "}, {-18220, "gang" },{-18211, "gao" },{-18201, "ge "},
{-18184, "gei" },{-18183, "gen" },{-18181, "geng" },{-18012, "gong" },{-17997, "gou" },{-17988, "gu" },{-17970, "gua "}
, {-17964, "guai" },{-17961, "guan" },{-17950, "guang" },{-17947, "gui "}, {-17931, "gun" },{-17928, "guo "},
{-17922, "ha" },{-17759, "hai" },{-17752, "han" },{-17733, "hang" },{-17730, "hao" },{-17721, "he" },{-17703, "hei "},
{-17701, "medium" },{-17697, "heng" },{-17692, "hong" },{-17683, "hou" },{-17676, "hu" },{-17496, "hua "},
{-17487, "huai" },{-17482, "huan" },{-17468, "huang" },{-17454, "hui" },{-17433, "hun" },{-17427, "huo "},
{-17417, "ji" },{-17202, "jia" },{-17185, "jian" },{-16983, "jiang" },{-16970, "jiao" },{-16942, "jie "},
{-16915, "jin" },{-16733, "jing" },{-16708, "jiong" },{-16706, "jiu" },{-16689, "ju" },{-16664, "juan "},
{-16657, "jue" },{-16647, "jun" },{-16474, "ka" },{-16470, "kai" },{-16465, "kan" },{-16459, "kang" },{-16452, "kao "},
{-16448, "ke" },{-16433, "ken" },{-16429, "keng" },{-16427, "kong" },{-16423, "kou" },{-16419, "ku" },{-16412, "kua "}
, {-16407, "kuai" },{-16403, "kuan" },{-16401, "kuang" },{-16393, "kui "}, {-16220, "kun" },{-16216, "kuo "},
{-16212, "la" },{-16205, "lai" },{-16202, "lan" },{-16187, "lang" },{-16180, "lao" },{-16171, "le" },{-16169, "lei "},
{-16158, "leng" },{-16155, "li" },{-15959, "lia" },{-15958, "lian" },{-15944, "liang" },{-15933, "liao "},
{-15920, "lie" },{-15915, "lin" },{-15903, "ling" },{-15889, "liu" },{-15878, "long" },{-15707, "lou" },{-15701, "lu "},
{-15681, "lv" },{-15667, "luan" },{-15661, "lue" },{-15659, "lun" },{-15652, "luo" },{-15640, "ma" },{-15631, "mai "},
{-15625, "man" },{-15454, "mang" },{-15448, "mao" },{-15436, "me" },{-15435, "mei" },{-15419, "men "},
{-15416, "meng" },{-15408, "mi" },{-15394, "mian" },{-15385, "miao" },{-15377, "mie" },{-15375, "min "},
{-15369, "ming" },{-15363, "miu" },{-15362, "mo" },{-15183, "mou" },{-15180, "mu" },{-15165, "na" },{-15158, "nai "},
{-15153, "nan" },{-15150, "nang" },{-15149, "nao" },{-15144, "ne" },{-15143, "nei" },{-15141, "nen" },{-15140, "neng "}
, {-15139, "ni" },{-15128, "nian" },{-15121, "niang" },{-15119, "niao "}, {-15117, "nie" },{-15110, "nin "},
{-15109, "ning" },{-14941, "niu" },{-14937, "nong" },{-14933, "nu" },{-14930, "nv" },{-14929, "nuan" },{-14928, "nue "}
, {-14926, "nuo" },{-14922, "o" },{-14921, "ou" },{-14914, "pa "}, {-14908, "pai" },{-14902, "pan" },{-14894, "pang "},
{-14889, "pao" },{-14882, "pei" },{-14873, "pen" },{-14871, "peng" },{-14857, "pi" },{-14678, "pian "},
{-14674, "piao" },{-14670, "pie" },{-14668, "pin" },{-14663, "ping" },{-14654, "po" },{-14645, "pu" },{-14630, "qi "},
{-14594, "qia" },{-14429, "qian" },{-14407, "qiang" },{-14399, "qiao" },{-14384, "qie" },{-14379, "qin "},
{-14368, "qing" },{-14355, "qiong" },{-14353, "qiu" },{-14345, "qu" },{-14170, "quan" },{-14159, "que "},
{-14151, "qun" },{-14149, "ran" },{-14145, "rang" },{-14140, "rao" },{-14137, "re" },{-14135, "ren" },{-14125, "reng "}
, {-14123, "ri" },{-14122, "rong" },{-14112, "rou" },{-14109, "ru "}, {-14099, "ruan" },{-14097, "rui" },{-14094, "run "}
, {-14092, "ruo" },{-14090, "sa" },{-14087, "sai" },{-14083, "san "}, {-13917, "sang" },{-13914, "sao" },{-13910, "se "}
, {-13907, "sen" },{-13906, "seng" },{-13905, "sha" },{-13896, "shai "}, {-13894, "shan" },{-13878, "shang "},
{-13870, "shao" },{-13859, "she" },{-13847, "shen" },{-13831, "sheng" },{-13658, "shi" },{-13611, "shou "},
{-13601, "shu" },{-13406, "shua" },{-13404, "shuai" },{-13400, "shuan" },{-13398, "shuang" },{-13395, "shui "},
{-13391, "shun" },{-13387, "shuo" },{-13383, "si" },{-13367, "song" },{-13359, "sou" },{-13356, "su "},
{-13343, "suan" },{-13340, "sui" },{-13329, "sun" },{-13326, "suo" },{-13318, "ta" },{-13147, "tai" },{-13138, "tan "},
{-13120, "tang" },{-13107, "tao" },{-13096, "te" },{-13095, "teng" },{-13091, "ti" },{-13076, "tian "},
{-13068, "tiao" },{-13063, "tie" },{-13060, "ting" },{-12888, "tong" },{-12875, "tou" },{-12871, "tu "},
{-12860, "tuan" },{-12858, "tui" },{-12852, "tun" },{-12849, "tuo" },{-12838, "wa" },{-12831, "wai" },{-12829, "wan "}
, {-12812, "wang" },{-12802, "wei" },{-12607, "wen" },{-12597, "weng "}, {-12594, "wo" },{-12585, "wu" },{-12556, "xi "}
, {-12359, "xia" },{-12346, "xian" },{-12320, "xiang" },{-12300, "xiao "}, {-12120, "xie" },{-12099, "xin "},
{-12089, "xing" },{-12074, "xiong" },{-12067, "xiu" },{-12058, "xu" },{-12039, "xuan" },{-11867, "xue "},
{-11861, "xun" },{-11847, "ya" },{-11831, "yan" },{-11798, "yang" },{-11781, "yao" },{-11604, "ye" },{-11589, "yi "},
{-11536, "yin" },{-11358, "ying" },{-11340, "yo" },{-11339, "yong" },{-11324, "you" },{-11303, "yu "},
{-11097, "yuan" },{-11077, "yue" },{-11067, "yun" },{-11055, "za" },{-11052, "zai" },{-11045, "zan "},
{-11041, "zang" },{-11038, "zao" },{-11024, "ze" },{-11020, "zei" },{-11019, "zen" },{-11018, "zeng "},
{-11014, "zha" },{-10838, "zhai" },{-10832, "zhan" },{-10815, "zhang" },{-10800, "zhao" },{-10790, "zhe "},
{-10780, "zhen" },{-10764, "zheng" },{-10587, "zhi" },{-10544, "zhong" },{-10533, "zhou" },{-10519, "zhu "},
{-10331, "zhua" },{-10329, "zhuai" },{-10328, "zhuan" },{-10322, "zhuang" },{-10315, "zhui" },{-10309, "zhun "},
{-10307, "zhuo" },{-10296, "zi" },{-10281, "zong" },{-10274, "zou" },{-10270, "zu" },{-10262, "zuan" },{-10260, "zui "}
, {-10256, "zun" },{-10254, "zuo "}};
/// <Summary>
/// Convert Chinese characters to PinYin
/// </Summary>
/// <Param name = "txt"> Chinese characters to be converted </param>
/// <Returns> returns the pinyin corresponding to the Chinese character </returns>
Public static string ToPinYin (string txt)
{
Txt = txt. Trim ();
Byte [] arr = new byte [2]; // each Chinese character is 2 bytes
StringBuilder result = new StringBuilder (); // use StringBuilder to optimize string connections
Int charCode = 0;
Int arr1 = 0;
Int arr2 = 0;
Char [] arrChar = txt. ToCharArray ();
For (int j = 0; j <arrChar. Length; j ++) // traverses the input characters
{
Arr = System. Text. Encoding. Default. GetBytes (arrChar [j]. ToString (); // obtain the bytecode based on the System's Default Encoding.
If (arr. Length = 1) // if only one byte indicates that this character is not a Chinese character, the cycle ends.
{
Result. Append (arrChar [j]. ToString ());
Continue;
}
Arr1 = (short) (arr [0]); // get byte 1
Arr2 = (short) (arr [1]); // get byte 2
CharCode = arr1 * 256 + arr2-65536; // calculate the encoding of Chinese Characters
If (charCode>-10254 | charCode <-20319) // if it is not within the Chinese character encoding range, it will not change
{
Result. Append (arrChar [j]);
}
Else
{
// Search for the pinyin corresponding to the Chinese character encoding range and save it to the result
// Because the charCode key does not necessarily exist, you need to find a key that is smaller than the charCode key.
If (! CodeCollections. ContainsKey (charCode ))
{
For (int I = charCode; I <= 0; -- I)
{
If (CodeCollections. ContainsKey (I ))
{
Result. Append ("" + CodeCollections [I] + "");
Break;
}
}
}
Else
{
Result. Append ("" + CodeCollections [charCode] + "");
}
}
}
Return result. ToString ();
}
}