.Net(c菗)漢字とユニックコードの相互変換例
{"Tilte": "\u535a\u5ba2\u56ed", "Href": "https://www.jb51.net"}
よくこのような内容のjson文字列に出会いますが、もともとはその中の漢字をユニックコードに変換しました。Unicodeコード:
汉字をユニコーンコードにします。例えば、「王」符号化すると「王」になります。ユニコムの文字は「u」から始まり、后ろに4つの数字またはアルファベットがあります。すべての文字は16進数で、それぞれ256以内の数字です。一方の漢字は2文字からなるので、「738 b」は2文字で、それぞれ「73」「8 b」と分かりやすいです。ただし、ユニコムの文字コードの内容を漢字に変換する場合は、文字は後から前に処理されますので、順番に「8 b」「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(cyco)汉字とUnicodeコードの互换例は小编が皆さんに共有している内容です。参考にしていただければと思います。どうぞよろしくお愿いします。