C# - 汉字与unicode之间的转换
2017-09-05 11:10
671 查看
Unity在做网络通讯的时候经常遇到这样内容的Json字符串,其实这是把其中的汉字做了unicode编码转换。
在表达一个Unicode字符时候,通常会用‘u’然后紧接一组16进制的数字来表示这一个字符,一组16进制数字刚好是两个字符,和一个汉字长度相同。但是在Unicode编码转换成汉字的时候,采用的低字节序方式,例如:掉(\u6389),我们需要按照顺序”89”“63”来组合得到汉字“掉”。
下面是实现代码算法:
{"name":"u8fd0u5305u88f9u6a21u5f0f"}
在表达一个Unicode字符时候,通常会用‘u’然后紧接一组16进制的数字来表示这一个字符,一组16进制数字刚好是两个字符,和一个汉字长度相同。但是在Unicode编码转换成汉字的时候,采用的低字节序方式,例如:掉(\u6389),我们需要按照顺序”89”“63”来组合得到汉字“掉”。
下面是实现代码算法:
/// <summary> /// 字符串转Unicode码 /// </summary> /// <returns>The to unicode.</returns> /// <param name="value">Value.</param> private string StringToUnicode(string value) { byte[] bytes = Encoding.Unicode.GetBytes (value); StringBuilder stringBuilder = new StringBuilder (); for (int i = 0; i < bytes.Length; i += 2) { // 取两个字符,每个字符都是右对齐。 stringBuilder.AppendFormat ("u{0}{1}", bytes [i + 1].ToString ("x").PadLeft (2, '0'), bytes [i].ToString ("x").PadLeft (2, '0')); } return stringBuilder.ToString (); } /// <summary> /// Unicode转字符串 /// </summary> /// <returns>The to string.</returns> /// <param name="unicode">Unicode.</param> private string UnicodeToString(string unicode) { string resultStr = ""; string[] strList = unicode.Split ('u'); for (int i = 1; i < strList.Length; i++) { resultStr += (char)int.Parse (strList[i], System.Globalization.NumberStyles.HexNumber); } return resultStr; }
相关文章推荐
- C#_汉字与GBK,Unicode,UTF-8编码之间的转换(by daode1212)
- C#_汉字与GBK,Unicode,UTF-8编码之间的转换(by daode1212)
- C# - 汉字与unicode之间的转换
- C#_汉字与GBK,Unicode,UTF-8编码之间的转换
- unicode与汉字之间的转换
- 字符串和(Unicode)十六进制数之间的转换方法包含(C#和VB6)
- 根据Unicode编码用C#语言把它转换成汉字的代码
- C#汉字Unicode编码相互转换
- .Net(c#)汉字和Unicode编码互相转换
- unicode和中文汉字之间的转换
- .Net(c#)汉字和Unicode编码互相转换
- C#汉字Unicode编码相互转换
- c#汉字与编码之间的转换(输出十六进制)
- Unicode转换成汉字的C#解码代码
- Unicode 码和汉字,十进制之间互转!二进制、十六进制,十进制的转换
- .Net(C#)汉字和Unicode编码互相转换
- 字符串和(Unicode)十六进制数之间的转换方法包含(C#和VB6)
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
- java中unicode utf-8以及汉字之间的转换工具类
- 关于JAVA中汉字和Unicode的值之间的转换