C# 将纯文本转换为相应的Unicode值?

C# 将纯文本转换为相应的Unicode值?,c#,unicode,C#,Unicode,我正在编写一个程序,要求我将Unicode文本转换为相应的Unicode值。就像您将字母“a”转换为ASCII表上的数字(十进制为97)时所做的那样。只有我想知道这是否可以用Unicode实现 提前感谢。试试这个: string text = "€ a+…”"; foreach (char c in text) { Console.WriteLine("{0} U+{1:x4} {2}", c, (int)c, (int)c); } 对于字符串中的每个字符,将显示: 人物 这是十六进

我正在编写一个程序,要求我将Unicode文本转换为相应的Unicode值。就像您将字母“a”转换为ASCII表上的数字(十进制为97)时所做的那样。只有我想知道这是否可以用Unicode实现

提前感谢。

试试这个:

string text = "€ a+…”";
foreach (char c in text)
{
    Console.WriteLine("{0} U+{1:x4} {2}", c, (int)c, (int)c);
}
对于字符串中的每个字符,将显示:

  • 人物
  • 这是十六进制的unicode字符代码
  • 它是unicode字符代码

.NET没有一个内置的方法来迭代字母或字符代码,因为它们位于.NET使用的字符编码(UTF-16)和字符集(“用户感知字符”)之间的中间地带

UTF-16以一个或两个代码单位对每个Unicode码点进行编码(.NET的
Char
,在C中别名为
Char
)。
字符串
(在C中别名为
字符串
)是UTF-16代码单元的计数序列

该结构确实有一些处理代码点的方法(如
Int32
),还有一些笨拙的方法可以帮助迭代代码点。注:代码点通常使用U+前缀和4或5个十六进制数字写入

该类有一些迭代graphemes(也称为“文本元素”)的方法

但是,由于您询问Unicode字符代码(“代码点”),NuGet包可能是最好的选择

使用它,您还可以获得由发布的每个代码点的描述。他们的网站上有很多信息,包括完整的名单


var s=“这是你想要的吗?也许他需要?也不是NFD或NKFD序列。但这是OP的意图吗?