Convert.ToChar()上的C#奇怪反斜杠

Dav*_*all 0 c# unicode

我正在尝试将xml字符实体转换为C#c​​har ...

string charString = "₁".Replace("&#", "\\").Replace(";", "");
char c = Convert.ToChar(charString);
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它在Convert.Char线上失败了.即使调试器显示charString,"\\\\x2081"它实际上"\x2081"是一个有效的Unicode字符.例外是太多字符.

Joe*_*oey 5

该文档ToChar(string)非常易读:

将指定字符串的第一个字符转换为Unicode字符.

也:

FormatException - 的长度不是1.

它不会将角色的十六进制表示转换为所述角色.它将采用一个字符的字符串并将该字符返回给您.做得一样s[0].

你想要的是:

string hex = "₁".Replace("&#x", "").Replace(";", "");
char c = (char)Convert.ToInt32(hex, 16);
Run Code Online (Sandbox Code Playgroud)