vld*_*jcc 8 c# unicode hex char
我正在尝试制作一个C#程序,将unicode字符从其十六进制格式转换为单个字符,我有一个问题.这是我的代码:
这有效:
char e = Convert.ToChar("\u0066");
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用:
Console.WriteLine("enter unicode format character (for example \\u0066)");
string s = Console.ReadLine();
Console.WriteLine("you entered (for example f)");
char c = Convert.ToChar(s);
Run Code Online (Sandbox Code Playgroud)
因为(Convert.ToChar("\\u0066"))给出错误:
字符串长度必须正好一个字符
任何人都知道如何做到这一点?
int.Parse不喜欢"\ u"前缀,但如果你先验证确保它在那里,你可以使用
char c = (char)int.Parse(s.Substring(2), NumberStyles.HexNumber);
Run Code Online (Sandbox Code Playgroud)
这将从输入字符串中删除前两个字符并解析剩余的文本.
为了确保序列是有效的,请尝试以下方法:
Regex reg = new Regex(@"^\\u([0-9A-Fa-f]{4})$");
if( reg.IsMatch(s) )
{
char c = (char)int.Parse(s.Substring(2), NumberStyles.HexNumber);
}
else
{
// Error
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5282 次 |
| 最近记录: |