C萼漢字ユニックコードは相互に変換されます.

1838 ワード

http://blog.163.com/da7_1@126/blog/static/10457272222222222223621/
 
Unicodeと漢字コードの豆知識は漢字をUNIcodeコードにします.例えば、「王」符号化すると「王」になります.UNICODE文字は「u」から始まり、後ろには4つの数字またはアルファベットがあります.すべての文字は16進数で、2桁あたり256以内の数字です.一方の漢字は2文字からなるので、「738 b」は2文字で、それぞれ「73」「8 b」と分かりやすいです.ただし、ユニコムの文字コードの内容を漢字に変換する場合は、文字は後から前に処理されますので、順番に「8 b」「73」を組み合わせて漢字を得る必要があります.下記はC㌦漢字Unicodeコードの相互変換コードです.
using System;
 using System.Text;
 using System.Text.RegularExpressions;
 using System.Globalization;
 public class GB2312UnicodeConverter
 {
     /// <summary>
     ///      Unicode  
     /// </summary>
     /// <param name="str">         </param>
     /// <returns>Unicode       </returns>
     public static string ToUnicode(string str)
     {
         byte[] bts = Encoding.Unicode.GetBytes(str);
         string r = "";
         for (int i = 0; i < bts.Length; i += 2) r += "\\u" + bts[i + 1].ToString("x").PadLeft(2, '0') + bts[i].ToString("x").PadLeft(2, '0');
         return r;
     }
     /// <summary>
     ///  Unicode          
     /// </summary>
     /// <param name="str">Unicode     </param>
     /// <returns>     </returns>
     public static string ToGB2312(string str)
     {
         string r = "";
         MatchCollection mc = Regex.Matches(str, @"\\u([\w]{2})([\w]{2})", RegexOptions.Compiled | RegexOptions.IgnoreCase);
         byte[] bts = new byte[2];
         foreach(Match m in mc )
         {
             bts[0] = (byte)int.Parse(m.Groups[2].Value, NumberStyles.HexNumber);
             bts[1] = (byte)int.Parse(m.Groups[1].Value, NumberStyles.HexNumber);
             r += Encoding.Unicode.GetString(bts);
         }
         return r;
     }
 }