假设我有一个随机的中文字符,玩。我想将其转换为 Unicode,该字符的 Unicode 编码是 U+73A9。在 C# 中我应该如何实现这一点?
将myChar视为引用您特殊字符的 char 类型...
Console.WriteLine("{0} U+{1:x4} {2}", myChar, (int)myChar, (int)myChar);
以上代码输出的是字符本身,后跟Unicode编码点和整数值。
简化格式字符串和参数,仅输出“U+…”代码...
Console.WriteLine("U+{0:x4}", (int)myChar);
{0:x4}
是什么意思?我知道其中一个是某个说明符,那么:x4
又是什么? - Mass字符“玩”在Unicode中。
如果您在C#中使用“玩”,那么它目前在UTF-16中,这是Unicode编码形式之一。
如果您从其他地方获取它,则需要:
第3步可能很简单(哦,我只需使用那个!),也可能很困难(该死,必须自己写!)或介于两者之间(嘿,有人已经写了这些东西吗?!)
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