.Net漢字和Unicode編碼互相轉換執行個體詳細介紹

來源:互聯網
上載者:User
下面小編就為大家帶來一篇.Net(c#)漢字和Unicode編碼互相轉換執行個體。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

{"Tilte": "\u535a\u5ba2\u56ed", "Href": "http://www.jb51.net"}

經常遇到這樣內容的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)));}

以上就是.Net漢字和Unicode編碼互相轉換執行個體詳細介紹的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.