搜档网
当前位置:搜档网 › C# 汉字转换成拼音完整方法及示例

C# 汉字转换成拼音完整方法及示例

C# 汉字转换成拼音完整方法及示例
C# 汉字转换成拼音完整方法及示例

C# 汉字转换成拼音完整方法及示例

using System;

using System.Collections.Generic;

using System.Text;

using System.Text.RegularExpressions;

namespace https://www.sodocs.net/doc/a36976873.html,mon.Tools

{

///

/// 汉字转拼音静态类,包括功能全拼和缩写,方法全部是静态的

///

public static class Chinese2Spell

{

#region 属性数据定义

///

/// 汉字的机内码数组

///

private static int[] pyValue = new int[]

{

-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036, -20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775,-19774,-19763, -19756,-19751,-19746,-19741,-19739,-19728,-19725,-19715,-19540,-19531,-19525,-19515, -19500,-19484,-19479,-19467,-19289,-19288,-19281,-19275,-19270,-19263,-19261,-19249, -19243,-19242,-19238,-19235,-19227,-19224,-19218,-19212,-19038,-19023,-19018,-19006, -19003,-18996,-18977,-18961,-18952,-18783,-18774,-18773,-18763,-18756,-18741,-18735,

-18731,-18722,-18710,-18697,-18696,-18526,-18518,-18501,-18490,-18478,-18463,-18448, -18447,-18446,-18239,-18237,-18231,-18220,-18211,-18201,-18184,-18183, -18181,-18012,

-17997,-17988,-17970,-17964,-17961,-17950,-17947,-17931,-17928,-17922,-17759,-17752, -17733,-17730,-17721,-17703,-17701,-17697,-17692,-17683,-17676,-17496,-17487,-17482, -17468,-17454,-17433,-17427,-17417,-17202,-17185,-16983,-16970,-16942,-16915,-16733, -16708,-16706,-16689,-16664,-16657,-16647,-16474,-16470,-16465,-16459,-16452,-16448,

-16433,-16429,-16427,-16423,-16419,-16412,-16407,-16403,-16401,-16393,-16220,-16216,

-16212,-16205,-16202,-16187,-16180,-16171,-16169,-16158,-16155,-15959,-15958,-15944, -15933,-15920,-15915,-15903,-15889,-15878,-15707,-15701,-15681,-15667,-15661,-15659, -15652,-15640,-15631,-15625,-15454,-15448,-15436,-15435,-15419,-15416,-15408,-15394, -15385,-15377,-15375,-15369,-15363,-15362,-15183,-15180,-15165,-15158,-15153,-15150, -15149,-15144,-15143,-15141,-15140,-15139,-15128,-15121,-15119,-15117,-15110,-15109, -14941,-14937,-14933,-14930,-14929,-14928,-14926,-14922,-14921,-14914,-14908,-14902, -14894,-14889,-14882,-14873,-14871,-14857,-14678,-14674,-14670,-14668,-14663,-14654, -14645,-14630,-14594,-14429,-14407,-14399,-14384,-14379,-14368,-14355,-14353,-14345, -14170,-14159,-14151,-14149,-14145,-14140,-14137,-14135,-14125,-14123,-14122,-14112, -14109,-14099,-14097,-14094,-14092,-14090,-14087,-14083,-13917,-13914,-13910,-13907, -13906,-13905,-13896,-13894,-13878,-13870,-13859,-13847,-13831,-13658,-13611,-13601, -13406,-13404,-13400,-13398,-13395,-13391,-13387,-13383,-13367,-13359,-13356,-13343, -13340,-13329,-13326,-13318,-13147,-13138,-13120,-13107,-13096,-13095,-13091,-13076, -13068,-13063,-13060,-12888,-12875,-12871,-12860,-12858,-12852,-12849,-12838,-12831, -12829,-12812,-12802,-12607,-12597,-12594,-12585,-12556,-12359,-12346,-12320,-12300, -12120,-12099,-12089,-12074,-12067,-12058,-12039,-11867,-11861,-11847,-11831,-11798, -11781,-11604,-11589,-11536,-11358,-11340,-11339,-11324,-11303,-11097,-11077,-11067, -11055,-11052,-11045,-11041,-11038,-11024,-11020,-11019,-11018,-11014,-10838,-10832, -10815,-10800,-10790,-10780,-10764,-10587,-10544,-10533,-10519,-10331,-10329,-10328,

-10322,-10315,-10309,-10307,-10296,-10281,-10274,-10270,-10262,-10260,-10256,-10254 };

///

/// 机内码对应的拼音数组

private static string[] pyName = new string[]

{

"A","Ai","An","Ang","Ao","Ba","Bai","Ban","Bang","Bao","Bei","Ben",

"Beng","Bi","Bian","Biao","Bie","Bin","Bing","Bo","Bu","Ba","Cai","Can",

"Cang","Cao","Ce","Ceng","Cha","Chai","Chan","Chang","Chao","Che","Chen","Cheng",

"Chi","Chong","Chou","Chu","Chuai","Chuan","Chuang","Chui","Chun","Chuo","Ci","Cong", "Cou","Cu","Cuan","Cui","Cun","Cuo","Da","Dai","Dan","Dang","Dao","De",

"Deng","Di","Dian","Diao","Die","Ding","Diu","Dong","Dou","Du","Duan","Dui",

"Dun","Duo","E","En","Er","Fa","Fan","Fang","Fei","Fen","Feng","Fo",

"Fou","Fu","Ga","Gai","Gan","Gang","Gao","Ge","Gei","Gen","Geng","Gong",

"Gou","Gu","Gua","Guai","Guan","Guang","Gui","Gun","Guo","Ha","Hai","Han",

"Hang","Hao","He","Hei","Hen","Heng","Hong","Hou","Hu","Hua","Huai","Huan",

"Huang","Hui","Hun","Huo","Ji","Jia","Jian","Jiang","Jiao","Jie","Jin","Jing",

"Jiong","Jiu","Ju","Juan","Jue","Jun","Ka","Kai","Kan","Kang","Kao","Ke",

"Ken","Keng","Kong","Kou","Ku","Kua","Kuai","Kuan","Kuang","Kui","Kun","Kuo",

"La","Lai","Lan","Lang","Lao","Le","Lei","Leng","Li","Lia","Lian","Liang",

"Liao","Lie","Lin","Ling","Liu","Long","Lou","Lu","Lv","Luan","Lue","Lun",

"Luo","Ma","Mai","Man","Mang","Mao","Me","Mei","Men","Meng","Mi","Mian",

"Miao","Mie","Min","Ming","Miu","Mo","Mou","Mu","Na","Nai","Nan","Nang",

"Nao","Ne","Nei","Nen","Neng","Ni","Nian","Niang","Niao","Nie","Nin","Ning",

"Niu","Nong","Nu","Nv","Nuan","Nue","Nuo","O","Ou","Pa","Pai","Pan",

"Pang","Pao","Pei","Pen","Peng","Pi","Pian","Piao","Pie","Pin","Ping","Po",

"Pu","Qi","Qia","Qian","Qiang","Qiao","Qie","Qin","Qing","Qiong","Qiu","Qu",

"Quan","Que","Qun","Ran","Rang","Rao","Re","Ren","Reng","Ri","Rong","Rou",

"Ru","Ruan","Rui","Run","Ruo","Sa","Sai","San","Sang","Sao","Se","Sen", "Seng","Sha","Shai","Shan","Shang","Shao","She","Shen","Sheng","Shi","Shou","Shu",

"Shua","Shuai","Shuan","Shuang","Shui","Shun","Shuo","Si","Song","Sou","Su","Suan",

"Sui","Sun","Suo","Ta","Tai","Tan","Tang","Tao","Te","Teng","Ti","Tian",

"Tiao","Tie","Ting","Tong","Tou","Tu","Tuan","Tui","Tun","Tuo","Wa","Wai",

"Wan","Wang","Wei","Wen","Weng","Wo","Wu","Xi","Xia","Xian","Xiang","Xiao",

"Xie","Xin","Xing","Xiong","Xiu","Xu","Xuan","Xue","Xun","Ya","Yan","Yang",

"Yao","Ye","Yi","Yin","Ying","Yo","Yong","You","Yu","Yuan","Yue","Yun",

"Za", "Zai","Zan","Zang","Zao","Ze","Zei","Zen","Zeng","Zha","Zhai","Zhan",

"Zhang","Zhao","Zhe","Zhen","Zheng","Zhi","Zhong","Zhou","Zhu","Zhua","Zhuai","Zhuan", "Zhuang","Zhui","Zhun","Zhuo","Zi","Zong","Zou","Zu","Zuan","Zui","Zun","Zuo"

};

#endregion

#region 把汉字转换成拼音(全拼)无间隔符号

/// 把汉字转换成拼音(全拼)

///

/// 汉字字符串

/// 转换后的拼音(全拼)字符串

public static string Convert(string hzString)

{

// 匹配中文字符

Regex regex = new Regex("^["u4e00-"u9fa5]$");

byte[] array = new byte[2];

string pyString = "";

int chrAsc = 0;

int i1 = 0;

int i2 = 0;

char[] noWChar = hzString.ToCharArray();

for (int j = 0; j < noWChar.Length; j++)

{

// 中文字符

if (regex.IsMatch(noWChar[j].ToString()))

{

array = System.Text.Encoding.Default.GetBytes(noWChar[j].ToString());

i1 = (short)(array[0]);

i2 = (short)(array[1]);

chrAsc = i1 * 256 + i2 - 65536;

if (chrAsc > 0 && chrAsc < 160)

{

pyString += noWChar[j];

}

else

{

// 修正部分文字

if (chrAsc == -9254) // 修正“圳”字

pyString += "Zhen";

else

{

for (int i = (pyValue.Length - 1); i >= 0; i--)

{

if (pyValue[i] <= chrAsc)

{

pyString += pyName[i];

break;

}

}

}

}

}

// 非中文字符

else

{

pyString += noWChar[j].ToString();

}

}

return pyString;

}

#endregion

#region 把汉字转换成拼音(全拼) 用空格间隔

///

/// 把汉字转换成拼音(全拼)

///

/// 汉字字符串

/// 转换后的拼音(全拼)字符串

public static string ConvertWithBlank(string hzString)

{

// 匹配中文字符

Regex regex = new Regex("^["u4e00-"u9fa5]$");

byte[] array = new byte[2];

string pyString = "";

int chrAsc = 0;

int i1 = 0;

int i2 = 0;

char[] noWChar = hzString.ToCharArray();

for (int j = 0; j < noWChar.Length; j++)

{

// 中文字符

if (regex.IsMatch(noWChar[j].ToString()))

{

array = System.Text.Encoding.Default.GetBytes(noWChar[j].ToString());

i1 = (short)(array[0]);

i2 = (short)(array[1]);

chrAsc = i1 * 256 + i2 - 65536;

if (chrAsc > 0 && chrAsc < 160)

{

pyString = pyString + " " + noWChar[j];

}

else

{

// 修正部分文字

if (chrAsc == -9254) // 修正“圳”字

pyString = pyString + " " + "Zhen";

else

{

for (int i = (pyValue.Length - 1); i >= 0; i--)

{

if (pyValue[i] <= chrAsc)

{

pyString = pyString + " " + pyName[i];

break;

}

}

}

}

}

// 非中文字符

else

{

pyString = pyString +" "+ noWChar[j].ToString();

}

}

return pyString.Trim();

}

#endregion

#region 把汉字转换成拼音(全拼) 用特定的字符间隔

///

/// 把汉字转换成拼音(全拼)

///

/// 汉字字符串

/// 转换后的拼音(全拼)字符串

public static string ConvertWithSplitChar(string hzString,string splitChar) {

// 匹配中文字符

Regex regex = new Regex("^["u4e00-"u9fa5]$");

byte[] array = new byte[2];

string pyString = "";

int chrAsc = 0;

int i1 = 0;

int i2 = 0;

char[] noWChar = hzString.ToCharArray();

for (int j = 0; j < noWChar.Length; j++)

{

// 中文字符

if (regex.IsMatch(noWChar[j].ToString()))

{

array = System.Text.Encoding.Default.GetBytes(noWChar[j].ToString());

i1 = (short)(array[0]);

i2 = (short)(array[1]);

chrAsc = i1 * 256 + i2 - 65536;

if (chrAsc > 0 && chrAsc < 160)

{

pyString = pyString + splitChar + noWChar[j];

}

else

{

// 修正部分文字

if (chrAsc == -9254) // 修正“圳”字

pyString = pyString + splitChar + "Zhen";

else

{

for (int i = (pyValue.Length - 1); i >= 0; i--)

{

if (pyValue[i] <= chrAsc)

{

pyString = pyString + splitChar + pyName[i];

break;

}

}

}

}

}

// 非中文字符

else

{

pyString = pyString + splitChar + noWChar[j].ToString();

}

}

char[] trimAChar = splitChar.ToCharArray();

return pyString.TrimStart(trimAChar);

}

#endregion

#region 汉字转拼音缩写(字符串) (小写)

///

/// 汉字转拼音缩写

///

/// 要转换的汉字字符串

/// 拼音缩写

public static string GetSpellStringLower(string str)

{

string tempStr = "";

foreach(char c in str)

{

if((int)c >= 33 && (int)c <=126)

{

//字母和符号原样保留

tempStr += c.ToString();

}

else

{

//累加拼音声母

tempStr += GetSpellCharLower(c.ToString());

}

}

return tempStr;

}

#endregion

#region 汉字转拼音缩写(字符串) (小写) (空格间隔)

///

/// 汉字转拼音缩写(字符串) (小写) (空格间隔)

///

/// 要转换的汉字字符串

/// 拼音缩写

public static string GetSpellStringLowerSplitWithBlank(string str)

{

string tempStr = "";

foreach (char c in str)

{

if ((int)c >= 33 && (int)c <= 126)

{

//字母和符号原样保留

tempStr = tempStr + " " + c.ToString();

}

else

{

//累加拼音声母

tempStr = tempStr + " " + GetSpellCharLower(c.ToString());

}

}

return tempStr.Trim();

}

#endregion

#region 汉字转拼音缩写(字符串)(大写)

///

/// 汉字转拼音缩写(大写)

///

/// 要转换的汉字字符串

/// 拼音缩写

public static string GetSpellStringSupper(string str)

{

string tempStr = "";

foreach (char c in str)

{

if ((int)c >= 33 && (int)c <= 126)

{

//字母和符号原样保留

tempStr += c.ToString();

}

else

{

//累加拼音声母

tempStr += GetSpellCharSupper(c.ToString());

}

}

return tempStr;

}

#endregion

#region 汉字转拼音缩写(字符串)(大写)(空格间隔)

///

/// 汉字转拼音缩写(字符串)(大写)(空格间隔)

///

/// 要转换的汉字字符串

/// 拼音缩写

public static string GetSpellStringSupperSplitWithBlank(string str)

{

string tempStr = "";

foreach (char c in str)

{

if ((int)c >= 33 && (int)c <= 126)

{

//字母和符号原样保留

tempStr = tempStr + " " + c.ToString();

}

else

{

//累加拼音声母

tempStr = tempStr + " " + GetSpellCharSupper(c.ToString());

}

}

return tempStr.Trim();

}

#endregion

#region 取单个字符的拼音声母(字符)(大写)

///

/// 取单个字符的拼音声母

///

/// 要转换的单个汉字

/// 拼音声母

public static string GetSpellCharSupper(string c)

{

byte[] array = new byte[2];

array = System.Text.Encoding.Default.GetBytes(c);

int i = (short)(array[0] - '"0') * 256 + ((short)(array[1] - '"0'));

if (i < 0xB0A1) return c;

if (i < 0xB0C5) return "A";

if (i < 0xB2C1) return "B";

if (i < 0xB4EE) return "C";

if (i < 0xB6EA) return "D";

if (i < 0xB7A2) return "E";

if (i < 0xB8C1) return "F";

if (i < 0xB9FE) return "G";

if (i < 0xBBF7) return "H";

if (i < 0xBFA6) return "J";

if (i < 0xC0AC) return "K";

if (i < 0xC2E8) return "L";

if (i < 0xC4C3) return "M";

if (i < 0xC5B6) return "N";

if (i < 0xC5BE) return "O";

if (i < 0xC6DA) return "P";

if (i < 0xC8BB) return "Q";

if (i < 0xC8F6) return "R";

if (i < 0xCBFA) return "S";

if (i < 0xCDDA) return "T";

if (i < 0xCEF4) return "W";

if (i < 0xD1B9) return "X";

if (i < 0xD4D1) return "Y";

if (i < 0xD7FA) return "Z";

return c;

}

#endregion

#region 取单个字符的拼音声母(字符)(小写)

///

/// 取单个字符的拼音声母

///

/// 要转换的单个汉字

/// 拼音声母

public static string GetSpellCharLower(string c)

{

byte[] array = new byte[2];

array = System.Text.Encoding.Default.GetBytes(c);

int i = (short)(array[0] - '"0') * 256 + ((short)(array[1] - '"0'));

if (i < 0xB0A1) return c;

if (i < 0xB0C5) return "a";

if (i < 0xB2C1) return "b";

if (i < 0xB4EE) return "c";

if (i < 0xB6EA) return "d";

if (i < 0xB7A2) return "e";

if (i < 0xB8C1) return "f";

if (i < 0xB9FE) return "g";

if (i < 0xBBF7) return "h";

if (i < 0xBFA6) return "j";

if (i < 0xC0AC) return "k";

if (i < 0xC2E8) return "l";

if (i < 0xC4C3) return "m";

if (i < 0xC5B6) return "n";

if (i < 0xC5BE) return "o";

if (i < 0xC6DA) return "p";

if (i < 0xC8BB) return "q";

if (i < 0xC8F6) return "r";

if (i < 0xCBFA) return "s";

if (i < 0xCDDA) return "t";

if (i < 0xCEF4) return "w";

if (i < 0xD1B9) return "x";

if (i < 0xD4D1) return "y";

if (i < 0xD7FA) return "z";

return c;

}

#endregion

}

}

在excel中把汉字转换成拼音只取首字母修订版

在e x c e l中把汉字转换成拼音只取首字母修订 版 IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】

打开Excel->工具->宏->Viaual Basic编辑器 在弹出来的窗口中对着VBAproject点右键->插入->模块下面会出现一个名为"模块1",点击 在右边的空白栏中粘贴以下内容: Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20284: pinyin = "A" Case -20283 To -19776: pinyin = "B" Case -19775 To -19219: pinyin = "C"

Case -19218 To -18711: pinyin = "D" Case -18710 To -18527: pinyin = "E" Case -18526 To -18240: pinyin = "F" Case -18239 To -17923: pinyin = "G" Case -17922 To -17418: pinyin = "H" Case -17417 To -16475: pinyin = "J" Case -16474 To -16213: pinyin = "K" Case -16212 To -15641: pinyin = "L" Case -15640 To -15166: pinyin = "M"

Case -15165 To -14923: pinyin = "N" Case -14922 To -14915: pinyin = "O" Case -14914 To -14631: pinyin = "P" Case -14630 To -14150: pinyin = "Q" Case -14149 To -14091: pinyin = "R" Case -14090 To -13319: pinyin = "S" Case -13318 To -12839: pinyin = "T" Case -12838 To -12557: pinyin = "W" Case -12556 To -11848: pinyin = "X" Case -11847 To -11056: pinyin = "Y"

宏-汉字转换拼音

公司要建DataBase,为了让老外们看明白,所以要吧中文店名全部转换成拼音。 5000多家,搞得头好晕,所以请教了下高手,发现了VBA的一个小技巧,分享给大家, 希望大家有用哦::P 具体方法如下: 打开Excel->Tools->Macro(宏)->Viaual Basic编辑器 点击插入->Module(模块) 然后会出现一个Module1,空白栏中粘贴以下内容: Option Explicit Option Compare Text Public Function HZQP(expression As String, Optional delimiter As String = " ", Optional limit As Integer = -1) As String 'expression ' 必需的?包含要转换的字符串? 'delimiter ' 可选的。用于标识分隔拼音的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回仅包含一个元素,即完整的expression字符串。 'limit ' 可选的。要返回拼音字符数,–1表示返回所有的拼音字符数,1表示返回拼音首字母。 Dim STR As String, arrWord(400) As String Dim i As Integer, j As Integer arrWord(1) = "吖a" arrWord(2) = "哎ai" arrWord(3) = "腤an" arrWord(4) = "肮ang" arrWord(5) = "凹ao" arrWord(6) = "八ba" arrWord(7) = "挀bai" arrWord(8) = "扳ban" arrWord(9) = "邦bang" arrWord(10) = "勹bao" arrWord(11) = "陂bei" arrWord(12) = "奔ben"

excel汉字转换成拼音简拼(只取首字母)

打开Excel->工具->宏->Viaual Basic编辑器 在弹出来的窗口中对着VBAproject点右键->插入->模块下面会出现一个名为"模块1",点击 在右边的空白栏中粘贴以下内容: Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20284: pinyin = "A" Case -20283 To -19776: pinyin = "B" Case -19775 To -19219: pinyin = "C" Case -19218 To -18711: pinyin = "D" Case -18710 To -18527: pinyin = "E" Case -18526 To -18240: pinyin = "F" Case -18239 To -17923: pinyin = "G" Case -17922 To -17418: pinyin = "H" Case -17417 To -16475: pinyin = "J" Case -16474 To -16213: pinyin = "K" Case -16212 To -15641: pinyin = "L" Case -15640 To -15166: pinyin = "M" Case -15165 To -14923: pinyin = "N" Case -14922 To -14915: pinyin = "O" Case -14914 To -14631: pinyin = "P"

宏 拼音转汉字

Option Explicit Option Compare Text Public Function HZQP(expression As String, Optional delimiter As String = " ", Optional limit As Integer = -1) As String 'expression ' 必需的?包含要转换的字符串? 'delimiter ' 可选的。用于标识分隔拼音的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回仅包含一个元素,即完整的 expression字符串。 'limit ' 可选的。要返回拼音字符数,–1表示返回所有的拼音字符数,1表示返回拼音首字母。 Dim STR As String, arrWord(400) As String Dim i As Integer, j As Integer arrWord(1) = "吖a" arrWord(2) = "哎ai" arrWord(3) = "腤an" arrWord(4) = "肮ang" arrWord(5) = "凹ao" arrWord(6) = "八ba" arrWord(7) = "挀bai" arrWord(8) = "扳ban" arrWord(9) = "邦bang" arrWord(10) = "勹bao" arrWord(11) = "陂bei" arrWord(12) = "奔ben" arrWord(13) = "崩beng" arrWord(14) = "皀bi" arrWord(15) = "边bian" arrWord(16) = "杓biao" arrWord(17) = "憋bie" arrWord(18) = "邠bin" arrWord(19) = "仌bing" arrWord(20) = "拨bo" arrWord(21) = "峬bu" arrWord(22) = "嚓ca" arrWord(23) = "猜cai" arrWord(24) = "飡can" arrWord(25) = "仓cang" arrWord(26) = "撡cao" arrWord(27) = "冊ce" arrWord(28) = "嵾cen" arrWord(29) = "噌ceng" arrWord(30) = "*cha"

把汉字转换成拼音

把汉字转换成拼音 录入学生资料时需要输入姓名的汉字拼音,但怎样才能把姓名转换成拼音呢? 1、先把EXCEL中的学生姓名复制,再打开WORD,然后右键“选择性粘贴”,选择“无格式文 本”后确定。 2、再全选刚才学生的姓名,点击WORD中的“格式”菜单栏,找到“中文版式”里面的“拼音指 南”,(图1),可以把其中的“字号”由“5”设置大一些,如设置为“20”等后,然后“确定”,一次转换不成,可以再次转换,要注意一次可能转换不了,要多次才行。转换后效果,如(图2)。 3、全选所有的文字,右键选择“切换域代码”,出现如(图3)的文字,点击“编辑”菜单栏,找 到“查找(替换)”,切换到“替换”,在“查找内容”处输入:[)]*[)](注意是半角状态下的符号。),在“替换为”处输入:一个半角状态下的空格,然后点击下面的“高级”,在“使用通配符”打上“√”,最后点击“全部替换”。 4、接着用同样的方法,在“查找内容”处输入:EQ*[(]*[(](注意是半角状态下的符号。), 在“替换为”处输入:EQ ,(注意:EQ后还有一个半角状态下的空格)(图4),然后“全部替换”。效果如(图5),然后右键再选择“切换域代码”,剩下拼音。 5、全选所有拼音,复制后,新建一个EXCEL文档,按右键“选择性粘贴”,即可把汉字转换 成拼音。 图1 图2 图3

6、复制刚才的拼音到EXCEL 里,在EXCEL 中选择“编辑”,找到“定位”,点击“定位条件”,在里面选择“空值”后“确定”,对着其中已经选择的空格,右键“删除”,选择“下方单元格上移”后确定,即可把拼音复制到对应的姓名右边。 图4 图5 图6

汉字转化为拼音程序代码

原理,使用Dictionary技术 1.添加索引 2.遍历词典 <% Set d = CreateObject("Scripting.Dictionary") d.add "a",-20319 d.add "ai",-20317 d.add "an",-20304 d.add "ang",-20295 d.add "ao",-20292 d.add "ba",-20283 d.add "bai",-20265 d.add "ban",-20257 d.add "bang",-20242 d.add "bao",-20230 d.add "bei",-20051 d.add "ben",-20036 d.add "beng",-20032 d.add "bi",-20026 d.add "bian",-20002 d.add "biao",-19990 d.add "bie",-19986 d.add "bin",-19982 d.add "bing",-19976 d.add "bo",-19805 d.add "bu",-19784 d.add "ca",-19775 d.add "cai",-19774 d.add "can",-19763 d.add "cang",-19756 d.add "cao",-19751 d.add "ce",-19746 d.add "ceng",-19741 d.add "cha",-19739 d.add "chai",-19728 d.add "chan",-19725 d.add "chang",-19715 d.add "chao",-19540 d.add "che",-19531 d.add "chen",-19525 d.add "cheng",-19515 d.add "chi",-19500 d.add "chong",-19484

汉字转拼音原理

第一部分附录3 汉字转换为拼音字头原理 GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。 1)01-09区为特殊符号。 2)16-55区为一级汉字,按拼音排序。 3)56-87区为二级汉字,按部首/笔画排序。 4)10-15区及88-94区则未有编码。 在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。浏览器编码表上的“GB2312”,通常都是指“EUC-CN”表示法。 每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”(也称“区字节)”,第二个字节称为“低位字节”(也称“位字节”)。 “高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。由于一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0-0xF7,“低位字节”的范围是0xA1-0xFE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。 例如“啊”字在大多数程序中,会以两个字节,0xB0(第一个字节)0xA1(第二个字节)储存。区位码=区字节+位字节(与区位码对比: 0xB0=0xA0+16,0xA1=0xA0+1)。 设计: 用一个数组存放国标一级汉字不同读音的起始区位码:如 static final int[] secPosValueList = { 1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249, 9999}; 一个数据存放存放国标一级汉字不同读音的起始区位码对应读音 static final char[] firstLetter = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'w', 'x', 'y', 'z'}; 处理方法:

在excel中把汉字转换成拼音(只取首字母)

在弹出来的窗口中对着VBAproject点右键->插入->模块下面会出现一个名为"模块1",点击 在右边的空白栏中粘贴以下内容: Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20284: pinyin = "A" Case -20283 To -19776: pinyin = "B" Case -19775 To -19219: pinyin = "C" Case -19218 To -18711: pinyin = "D" Case -18710 To -18527: pinyin = "E" Case -18526 To -18240: pinyin = "F" Case -18239 To -17923: pinyin = "G" Case -17922 To -17418: pinyin = "H" Case -17417 To -16475: pinyin = "J" Case -16474 To -16213: pinyin = "K"

Case -16212 To -15641: pinyin = "L" Case -15640 To -15166: pinyin = "M" Case -15165 To -14923: pinyin = "N" Case -14922 To -14915: pinyin = "O" Case -14914 To -14631: pinyin = "P" Case -14630 To -14150: pinyin = "Q" Case -14149 To -14091: pinyin = "R" Case -14090 To -13319: pinyin = "S" Case -13318 To -12839: pinyin = "T" Case -12838 To -12557: pinyin = "W" Case -12556 To -11848: pinyin = "X" Case -11847 To -11056: pinyin = "Y" Case -11055 To -2050: pinyin = "Z" Case Else: pinyin = p End Select End Function Function getpy(str)

excel 汉字转换成拼音全拼&excel 汉字转换成拼音简拼(只取首字母)

Excel自定义函数方法: 1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表; 2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态; 3.执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态; 4.将代码输入其中; 5.代码输入完成后,关闭Visual Basic编辑窗口,返回Excel编辑状态; 6.自定义函数就可以用了,如:选中D2单元格,输入公式:=getpy(A2)。 有极个别的汉字不能转换,手动就可以了!很方便了。 Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin = "a " Case -20317 To -20305: pinyin = "ai " Case -20304 To -20296: pinyin = "an " Case -20295 To -20293: pinyin = "ang " Case -20292 To -20284: pinyin = "ao " Case -20283 To -20266: pinyin = "ba " Case -20265 To -20258: pinyin = "bai " Case -20257 To -20243: pinyin = "ban " Case -20242 To -20231: pinyin = "bang " Case -20230 To -20052: pinyin = "bao " Case -20051 To -20037: pinyin = "bei " Case -20036 To -20033: pinyin = "ben " Case -20032 To -20027: pinyin = "beng " Case -20026 To -20003: pinyin = "bi " Case -20002 To -19991: pinyin = "bian " Case -19990 To -19987: pinyin = "biao " Case -19986 To -19983: pinyin = "bie " Case -19982 To -19977: pinyin = "bin " Case -19976 To -19806: pinyin = "bing " Case -19805 To -19785: pinyin = "bo " Case -19784 To -19776: pinyin = "bu " Case -19775 To -19775: pinyin = "ca " Case -19774 To -19764: pinyin = "cai " Case -19763 To -19757: pinyin = "can " Case -19756 To -19752: pinyin = "cang " Case -19751 To -19747: pinyin = "cao " Case -19746 To -19742: pinyin = "ce " Case -19741 To -19740: pinyin = "ceng " Case -19739 To -19729: pinyin = "cha " Case -19728 To -19726: pinyin = "chai "

Excel中将汉字转化为拼音

Excel中将汉字转化为拼音(完整拼音)版 1.打开Excel->工具->宏->Viaual Basic编辑器 2.在弹出来的窗口中对着VBAproject点右键->插入->模块 3.下面会出现一个名为"模块1",点击 4.在右边的空白栏中粘贴以下内容: Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin = "a " Case -20317 To -20305: pinyin = "ai " Case -20304 To -20296: pinyin = "an " Case -20295 To -20293: pinyin = "ang " Case -20292 To -20284: pinyin = "ao " Case -20283 To -20266: pinyin = "ba " Case -20265 To -20258: pinyin = "bai " Case -20257 To -20243: pinyin = "ban " Case -20242 To -20231: pinyin = "bang " Case -20230 To -20052: pinyin = "bao " Case -20051 To -20037: pinyin = "bei " Case -20036 To -20033: pinyin = "ben " Case -20032 To -20027: pinyin = "beng " Case -20026 To -20003: pinyin = "bi " Case -20002 To -19991: pinyin = "bian " Case -19990 To -19987: pinyin = "biao " Case -19986 To -19983: pinyin = "bie " Case -19982 To -19977: pinyin = "bin " Case -19976 To -19806: pinyin = "bing " Case -19805 To -19785: pinyin = "bo " Case -19784 To -19776: pinyin = "bu " Case -19775 To -19775: pinyin = "ca " Case -19774 To -19764: pinyin = "cai " Case -19763 To -19757: pinyin = "can " Case -19756 To -19752: pinyin = "cang " Case -19751 To -19747: pinyin = "cao " Case -19746 To -19742: pinyin = "ce " Case -19741 To -19740: pinyin = "ceng " Case -19739 To -19729: pinyin = "cha " Case -19728 To -19726: pinyin = "chai " Case -19725 To -19716: pinyin = "chan " Case -19715 To -19541: pinyin = "chang " Case -19540 To -19532: pinyin = "chao " Case -19531 To -19526: pinyin = "che "

Java中文字转拼音工具类

Java中文字转拼音工具类 2020-03-24 09:49:09 有时,我们需要将中文汉字转为拼音存储,例如用于检索时,直接输入拼音或者首字母也能检索出我们想要的结果,这时我们便需要将汉字转拼音 ?1、首先我们在 pom.xml 文件中引入需要的 maven 依赖 com.belerweb pinyin4j 2.5.1 ?2、汉字转拼音工具类代码如下 Pinyin4jUtil.java: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatComb ination; /** –中文转化为拼音工具类 –@author lizhou –*/ public class Pinyin4jUtil { /** ?获得汉语拼音首字母大写 ?@param chines 汉字 ?@return */ public static String getAlpha2UpperCase(String chines) { String pinyinNam e = "“; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_T ONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0); } catch (BadHanyuPinyinOutputFormatCombination e) { System.out.println(”获得汉语拼音首字母异常:}" + e.getMessage()); } } else { pinyinName += nameChar[i]; } } return pinyinName; } /**

如何在excel中把汉字转换成拼音

Excel自定义函数法: 1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表; 2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态; 3.执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态; 4.将代码输入其中; 5.代码输入完成后,关闭Visual Basic编辑窗口,返回Excel编辑状态; 6.自定义函数就可以用了,如:选中D2单元格,输入公式:=getpy(A2)。 有极个别的汉字不能转换,手动就可以了!很便了。 Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin = "a " Case -20317 To -20305: pinyin = "ai " Case -20304 To -20296: pinyin = "an " Case -20295 To -20293: pinyin = "ang " Case -20292 To -20284: pinyin = "ao " Case -20283 To -20266: pinyin = "ba " Case -20265 To -20258: pinyin = "bai " Case -20257 To -20243: pinyin = "ban " Case -20242 To -20231: pinyin = "bang " Case -20230 To -20052: pinyin = "bao " Case -20051 To -20037: pinyin = "bei " Case -20036 To -20033: pinyin = "ben " Case -20032 To -20027: pinyin = "beng " Case -20026 To -20003: pinyin = "bi " Case -20002 To -19991: pinyin = "bian " Case -19990 To -19987: pinyin = "biao " Case -19986 To -19983: pinyin = "bie " Case -19982 To -19977: pinyin = "bin " Case -19976 To -19806: pinyin = "bing " Case -19805 To -19785: pinyin = "bo " Case -19784 To -19776: pinyin = "bu " Case -19775 To -19775: pinyin = "ca " Case -19774 To -19764: pinyin = "cai " Case -19763 To -19757: pinyin = "can " Case -19756 To -19752: pinyin = "cang " Case -19751 To -19747: pinyin = "cao " Case -19746 To -19742: pinyin = "ce " Case -19741 To -19740: pinyin = "ceng " Case -19739 To -19729: pinyin = "cha " Case -19728 To -19726: pinyin = "chai "

汉字与首字母相互转换:输入汉字拼音首字母,自动识别汉字; 输入汉字,自动获取首字母;

///

/// 找到中文短语的拼音首字母。 /// /// 中文短语 /// 拼音首字母,存在多音字时以,分隔。 /// 如:西单,将返回XD,XS,XC。 public static void GetFirstLetter(string wStrChs, ref string strResult) { strResult = ""; string strBuffer = ""; for (int i = 0; i < wStrChs.Length; i++) { GetSpellByChs(wStrChs[i], ref strBuffer); if (strBuffer.Length > 0) { if (strResult != string.Empty) { string[] strs = strResult.Split(','); strResult = ""; for (int j = 0; j < strs.Length; j++) { for (int k = 0; k < strBuffer.Length; k++) { strResult += strs[j] + strBuffer[k].ToString() + ","; } } } else { for (int j = 0; j < strBuffer.Length; j++) { strResult += strBuffer[j] + ","; } } if (strResult != string.Empty) strResult = strResult.Substring(0, strResult.Length - 1); } } } /// /// 返回中文单字的拼音首字母。

用公式将汉字转换为拼音的第一个字母

用公式将汉字转换为拼音的第一个字母 有时需要在Excel中将大量姓名或名称转换为拼音首字母的简写形式,例如将“周伯通”转换为“ZBT”。用定义名称和公式的方法可以轻松实现转换,在Windows XP中,以Excel 2003为例方法如下: 1.定义名称: 单击菜单“插入→名称→定义”,在弹出的对话框中“在当前工作簿中的名称”下的文本框中输入一个名称,如“py”,在“引用位置”下输入下列代码后确定: ={"","吖","八","嚓","咑","鵽","发","猤","铪","夻","咔","垃","嘸","旀", "噢","妑","七","囕","仨","他","屲","夕","丫","帀";"","A","B","C","D","E", "F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y"," Z"} 2.假如名单在A2:A100区域中,在B2单元格中输入公式: =LOOKUP(LEFT(A2,1),py)&LOOKUP(MID(A2,2,1),py)&LOOKUP(MID(A2,3,1), py)&LOOKUP(MID(A2,4,1),py) 然后拖动填充柄向下填充公式即可。

说明: 1.定义的名称为一个数组,以分号为界分为两行,第一行为汉字,第二行为与第一行汉字对应的拼音第一个大写字母。如果是Windows 7或Vista,则需要将定义的名称改为: ={"","吖","八","攃","咑","鵽","发","旮","哈","丌","咔","垃","妈","乸", "噢","帊","七","冄","仨","他","屲","夕","丫","帀";"","A","B","C","D","E", "F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y"," Z"} 2.公式用LOOKUP函数将每个汉字转换成拼音的第一个大写字母。其原理是:Excel中汉字(文本)之间也可以进行比较;汉字在Excel中的排列顺序与拼音顺序相同,排在前面的“值”小于排在其后的。上述定义名称的数组中,每个汉字都是所有拼音首字母相同的汉字中的第一个,例如“八”在Excel中排在其他所有拼音首字母为“B”的前面,因而其“值”最小。因此,LOOKUP函数在查找某个不在数组中的汉字,如“伯”字时,会在数组的第一行中查找小于它的最大值“八”,然后返回最后一行同列的值“B”。 另外,由于在Windows XP与Windows 7、Vista中Excel对汉字的排列顺序有所不同,故定义的名称内容也不同。如果在Windows 7、Vista中使用XP中定义的数组,LOOKUP函数第二个参数中的值未按升序排列,可能无法返回正确的结果。

excel 表格将汉字名字转换为汉语拼音

excel 表格将汉字名字,转换为汉语拼音 excel 表格将汉字名字,转换为汉语拼音,除婵、婷、妍、倩、奕、嫦、冼、钰、炜、泉、楠、佼等部分字不能转换外,大部可以用此方法转换的。 打开excel 添加个模块 Function PinYin(Hz As String) Dim PinMa As String Dim MyPinMa As Variant Dim Temp As Integer, i As Integer, j As Integer PinMa = "a,20319,ai,20317,an,20304,ang,20295,ao,20292," PinMa = PinMa & "ba,20283,bai,20265,ban,20257,bang,20242,bao,20230,bei,20051,ben,20036,beng,200 32,bi,20026,bian,20002,biao,19990,bie,19986,bin,19982,bing,19976,bo,19805,bu,19 784," PinMa = PinMa & "ca,19775,cai,19774,can,19763,cang,19756,cao,19751,ce,19746,ceng,19741,cha,1973 9,chai,19728,chan,19725,chang,19715,chao,19540,che,19531,chen,19525,cheng,19515 ,chi,19500,chong,19484,chou,19479,chu,19467,chuai,19289,chuan,19288,chuang,1928 1,chui,19275,chun,19270,chuo,19263,ci,19261,cong,19249,cou,19243,cu,19242,cuan, 19238,cui,19235,cun,19227,cuo,19224," PinMa = PinMa & "da,19218,dai,19212,dan,19038,dang,19023,dao,19018,de,19006,deng,19003,di,18996 ,dian,18977,diao,18961,die,18952,ding,18783,diu,18774,dong,18773,dou,18763,du,1 8756,duan,18741,dui,18735,dun,18731,duo,18722," PinMa = PinMa & "e,18710,en,18697,er,18696," PinMa = PinMa & "fa,18526,fan,18518,fang,18501,fei,18490,fen,18478,feng,18463,fo,18448,fou,1844 7,fu,18446," PinMa = PinMa & "ga,18239,gai,18237,gan,18231,gang,18220,gao,18211,ge,18201,gei,18184,gen,18183 ,geng,18181,gong,18012,gou,17997,gu,17988,gua,17970,guai,17964,guan,17961,guang ,17950,gui,17947,gun,17931,guo,17928," PinMa = PinMa & "ha,17922,hai,17759,han,17752,hang,17733,hao,17730,he,17721,hei,17703,hen,17701

把汉字转换成拼音

把下面的所有容复制,粘贴到步骤4中的空白处Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin = "a " Case -20317 To -20305: pinyin = "ai " Case -20304 To -20296: pinyin = "an " Case -20295 To -20293: pinyin = "ang " Case -20292 To -20284: pinyin = "ao " Case -20283 To -20266: pinyin = "ba " Case -20265 To -20258: pinyin = "bai " Case -20257 To -20243: pinyin = "ban " Case -20242 To -20231: pinyin = "bang " Case -20230 To -20052: pinyin = "bao " Case -20051 To -20037: pinyin = "bei " Case -20036 To -20033: pinyin = "ben " Case -20032 To -20027: pinyin = "beng " Case -20026 To -20003: pinyin = "bi " Case -20002 To -19991: pinyin = "bian " Case -19990 To -19987: pinyin = "biao " Case -19986 To -19983: pinyin = "bie " Case -19982 To -19977: pinyin = "bin "

能把汉字转化为拼音的一个函数

能把汉字转化为拼音的一个函数 发信人: 海滨 整理人:站内信件 来源:CSDN 很多问题都是因为中文问题造成的 如文件名最好别用中文 现在的解决方法一般是产生一个ID,将这个ID做文件名网页上如果url带汉字也经常出错 现在的解决方法一般用urlencode编码 现在用了这个转化,就好多了 原理:利用多维数组 1.添加索引 2.遍历数组

相关主题