.Net(c#)汉字和Unicode编码互相转换

{"Tilte": "\u535a\u5ba2\u56ed", "Href": "http://www.cnblogs.com"}

经常遇到这样内容的json字符串,原来是把其中的汉字做了Unicode编码转换。

Unicode编码:

  将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的一个数字。而一个汉字是由两个字符组成,于是就很容易理解了,“738b”是两个字符,分别是“73”“8b”。但是在将 UNICODE字符编码的内容转换为汉字的时候,字符是从后面向前处理的,所以,需要把字符按照顺序“8b”“73”进行组合得到汉字

Unicode/汉字互转实现:

/// <summary>
/// <summary>
/// 字符串转Unicode
/// </summary>
/// <param name="source">源字符串</param>
/// <returns>Unicode编码后的字符串</returns>
public static string String2Unicode(string source)
{
    byte[] bytes = Encoding.Unicode.GetBytes(source);
    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>
/// <param name="source">经过Unicode编码的字符串</param>
/// <returns>正常字符串</returns>
public static string Unicode2String(string source)
{
    return new Regex(@"\\u([0-9A-F]{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled).Replace(
                 source, x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result("$1"), 16)));
}

时间: 2024-10-08 23:29:08

.Net(c#)汉字和Unicode编码互相转换的相关文章

winform学习日志(二十八)----------将汉字转化为拼音,正则表达式和得到汉字的Unicode编码

一:上图,不清楚的看代码注解,很详细了 二:具体代码 窗体代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Text.RegularExpressio

unicode 编码在线转换工具--javascript

unicode 编码在线转换工具--javascript 本人在网上搜索,看到有使用javascript做unicode编码转换的,感觉很好玩,所以拿来使用的. 这个功能有目前测试了两种: 1)unicode互相转换,例如\u4e2d\u56fd转换成字符,支持中文和英文: 2)URL编码的解析,例如众所周知的%20是表示空格,还有%24,%33,%44,%62等等: 我相信,只要你试试上面的字符进行解码,你就会知道他们之间关系,如何表示字符,数字,字母. 以上可以直接运行.下面给出相关的JS代

PHP 汉字 特殊字符 UNICODE 编码 解码 高性能简洁实现方案

网上,针对汉字.特殊字符的UNICODE 编码.解码实现,方法诸多,但是大多是复制粘贴,没有新意! PHP UNICODE 汉字 编码: var_dump(json_encode('2018 ABC 我是中国人!网站:http://my.oschina.net/cart/')); 上述就实现了PHP中对汉字.特殊字符的 UNICODE 编码! 多么easy! 上面会输出: string(96) ""2018 ABC \u6211\u662f\u4e2d\u56fd\u4eba\uff0

汉字转为Unicode编码

protected string GetUnicode(string text) { string result = ""; for (int i = 0; i < text.Length; i++) { if ((int)text[i] > 32 && (int)text[i] < 127) { result += text[i].ToString(); } else result += string.Format("\\u{0:x4}&q

php汉字转Unicode编码函数

/** * $str 原始字符串 * $encoding 原始字符串的编码,默认GBK * $prefix 编码后的前缀,默认"&#" * $postfix 编码后的后缀,默认";" */ function unicode_encode($str, $encoding = 'GBK', $prefix = '&#', $postfix = ';') { $str = iconv($encoding, 'UCS-2', $str); $arrstr =

Js汉字和Unicode编码互转 Unicode加密 Unicode解密

<title>汉字和Unicode编码互转</title> <script Language=Javascript> var classObj= { ToUnicode:function(str) { return escape(str).replace(/%/g,"\\").toLowerCase(); }, UnUnicode:function(str) { return unescape(str.replace(/\\/g, "%&q

js字符串与Unicode编码互相转换

'好'.charCodeAt(0).toString(16) "597d" 这段代码的意思是,把字符'好'转化成Unicode编码, 看看charCodeAt()是怎么个意思 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. 等于就是'charCodeAt()'里面的这个参数是指定位置的单个字符, '好哦'.charCodeAt(0).toString(16) "597d" '好哦'.char

c# 实现获取汉字十六进制Unicode编码字符串

1.  汉字转十六进制UNICODE编码字符串 /// <summary>        /// ////        /// </summary>        /// <param name="character"></param>        /// <returns></returns>        public string CharacterToCoding(string character)  

python3进行汉字和unicode码的转换

输出某个unicode码对应的汉字和某个汉字对应的unicode编码. # -*- coding=UTF-8 -*- str1 = "\u6000"#某个汉字的unicode码 str2='一'#汉字一 #print(str1.encode('utf-8').decode('unicode_escape'))#python2的写法,python3不能用 print(str1)#输出str1对应的汉字 print(str2.encode('unicode_escape'))#输出汉字一对