打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#中将UNICODE编码后的字符转换为汉字

为了避免在浏览器中传输数据的时候出现中文乱码,我们可以将内容进行URL编码,当然也可以将内容进行UNICODE编码。将汉字进行UNICODE编码,如:“王”编码后就成了“\u738b”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的一个数字。而一个汉字是由两个字符组成,于是就很容易理解了,“738b”是两个字符,分别是“73”“8b”。但是在将UNICODE字符编码的内容转换为汉字的时候,字符是从后面向前处理的,所以,需要把字符按照顺序“8b”“73”进行组合得到汉字。下面是具体的转化代码。

将邮件列表中的名字(name)进行转换,转换后放回到邮件列表中(mails)

// 将UNICODE编码后的汉字转换回来,如: \u738b --> 王

MatchCollection mCollection2 = Regex.Matches(name, "([\\w]+)|(\\\\u([\\w]{4}))");

if (mCollection2 != null && mCollection2.Count > 0)

{

StringBuilder sb = new StringBuilder();

foreach (Match m2 in mCollection2)

{

string v = m2.Value;

if (v.StartsWith("\\u"))

{

string word = v.Substring(2);

byte[] codes = new byte[2];

int code = System.Convert.ToInt32(word.Substring(0, 2), 16);

int code2 = System.Convert.ToInt32(word.Substring(2), 16);

codes[0] = (byte)code2;

codes[1] = (byte)code;

sb.Append(Encoding.Unicode.GetString(codes));

}

else

{

sb.Append(v);

}

}

mails[i, 0] = sb.ToString();

}

else

{

mails[i, 0] = name;

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
\u Unicode和汉字转化
unicode编码转换gb2312编码
Android中文乱码彻底解决
正确理解UNICODE UTF
Tomcat关于encoding编码的默认设置以及乱码产生的原因
struts原理与实践(4)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服