例如,我有字符串“Möller”。我想根据此链接中的十六进制代码将其转换为“Möller
”:http://www.codetable.net/hex/f6
我想检测所有特殊字符(不是普通的字母数字)并自动转换它们。
到目前为止,我见过的唯一例子只是普通的十六进制。有没有办法获取 Unicode 十六进制代码?
谢谢
最佳答案
您想要匹配除 ASCII 字母之外的任何 Unicode 字母。使用正则表达式很容易实现:
[\p{L}-[A-Za-z]]
请参阅regex demo
在 C# 代码中,将 Regex.Replace
与匹配评估器结合使用,将这些字母转换为十六进制代码。
var s = "Möller";
s = Regex.Replace(s, @"[\p{L}-[a-zA-Z]]", m =>
string.Join(string.Empty, m.Value.Select(c=>string.Format("&#x{0:X};", Convert.ToInt32(c))).ToArray()));
Console.WriteLine(s); // => Möller
请参阅C# demo
关于c# - 将字符串中的特殊字符转换为 Unicode 十六进制代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40967540/