簡體   English   中英

將中文字符轉換為Unicode

[英]Converting chinese character to Unicode

假設我有一個隨機的中文字符,玩。 我想將它轉換為Unicode,即U + 73A9。 我怎么能在C#中做到這一點?

myChar作為引用你的特殊角色的字符......

Console.WriteLine("{0} U+{1:x4} {2}", myChar, (int)myChar, (int)myChar);

上面我們輸出字符本身,然后是Unicode代碼點,然后輸出整數值。

減少格式字符串和參數,只輸出“U + ...”代碼...

Console.WriteLine("U+{0:x4}", (int)myChar);

characater玩用Unicode。

如果你用C#作為玩具,它當前是UTF-16,這是Unicode編碼形式之一。

如果您從其他地方獲得它,您需要:

  1. 找到它所在的編碼。
  2. 獲取字節(由流包裹很好)。
  3. 得到一個合適的編碼器。
  4. 使用編碼器獲取字符串(使用文本閱讀器包裝好的流更好)。

第3步可能很簡單(哦,我只是使用那個!)或者很難(darn,必須自己寫!)或介於兩者之間的某個地方(嘿,有人寫過其中一個嗎?!)

更長一點的例子,遵循Jon Hanna的答案中的模式:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UnicodeDecodeConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            char c = '\u73a9';
            char[] chars = {c};
            Encoding encoding = Encoding.BigEndianUnicode;
            byte[] decodeds = encoding.GetBytes(chars);
            StringBuilder stringBuilder = new StringBuilder("U+");
            foreach (byte decoded in decodeds)
            {
                stringBuilder.Append(decoded.ToString("x2"));
            }
            Console.WriteLine(stringBuilder);
            Console.ReadLine();
        }
    }
}

--jeroen

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM