c# - 如何在 C# 中将 unicode 字符转换为其等效的转义 ascii

标签 c# .net string unicode ascii

我从一个包含编码的 unicode 字符“ü”的字符串开始。我将字符串传递给执行某些逻辑并返回另一个字符串的对象。该字符串正在将原始编码字符转换为其 unicode 等效“ü”。

我需要取回原始编码字符,但目前还做不到。

我尝试使用 HttpUtility.HtmlEncode() 方法,但它返回的是“& #252;”,这是不一样的。

有人能帮忙吗?

最佳答案

它们几乎相同,至少在显示方面如此。 HttpUtility.HtmlEncode 使用十进制编码,其格式为 &#DECIMAL; 而您的原始版本为 hexadecimal编码,即 &#xHEX; 格式。因为十六进制的fc是十进制的252,所以两者是等价的。

如果你真的需要得到十六进制编码的版本,那么考虑解析出十进制和converting it to hex在将其填充回 &#xHEX; 格式之前。有点像

string unicode = "ü";
string decimalEncoded = HttpUtility.HtmlEncode(unicode);
int decimal = int.Parse(decimalEncoded.Substring(2, decimalEncoded.Length - 3);
string hexEncoded = string.Format("&#x{0:X};", decimal);

关于c# - 如何在 C# 中将 unicode 字符转换为其等效的转义 ascii,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663538/

相关文章:

c# - 模拟具有不同签名的方法,其中一个方法具有 Object 作为参数类型

c# - 任务的 OnCompleted 回调在哪里?

c# - 确定派生类是否实现了以自身作为泛型参数的泛型接口(interface)

string - 如何从 Swift 中的路径更改各种重音符号和特殊字符?

string - 如何将 to_string() 功能添加到枚举中?

java - 如果字符串重复,如何返回字符串的第一个字符?

C# - 在组合框可见之前填充哪个事件?

c# - bool 列的 CAML 查询不起作用

.net - WPF - 绑定(bind)到菜单图标

c# - 如何抛出下溢异常?