[C#-Util]将汉字转化为2位大写的16进制Unicode

 说明:

str.ToString("x") : 转为1位16进制小写

str.ToString("X") : 转为1位16进制大写

str.ToString("X2"):转为2位16进制大写

1 publicstaticstring StringToUnicode16(string text, string prefixalChar, string splitChar)
2 {
3 var sb =new StringBuilder();
4 if (string.IsNullOrEmpty(text))
5 {
6 returnstring.Empty;
7 }
8
9 foreach (var t in text)
10 {
11 var by = Encoding.Unicode.GetBytes(Convert.ToString(t));
12
13 if (by.Length !=2)
14 {
15 sb.Append(Convert.ToString(t));
16 continue;
17 }
18
19 //只处理中文
20 if (by[1] ==0)
21 {
22 sb.Append(Convert.ToString(t));
23 continue;
24 }
25
26 sb.Append(prefixalChar);
27 sb.Append(by[1].ToString("X2"));
28 sb.Append(by[0].ToString("X2"));
29 sb.Append(splitChar);
30 }
31
32 return sb.ToString();
33 }

 

posted @ 2010-12-03 10:43  CopyPaster  阅读(1210)  评论(0编辑  收藏  举报