我从一个包含编码的 unicode 字符“ü”的字符串开始。我将字符串传递给执行某些逻辑并返回另一个字符串的对象。该字符串正在将原始编码字符转换为其 unicode 等效“ü”。
我需要取回原始编码字符,但目前还做不到。
我尝试使用 HttpUtility.HtmlEncode() 方法,但它返回的是“& #252;”,这是不一样的。
有人能帮忙吗?
最佳答案
它们几乎相同,至少在显示方面如此。 HttpUtility.HtmlEncode
使用十进制编码,其格式为 DECIMAL;
而您的原始版本为 hexadecimal编码,即 HEX;
格式。因为十六进制的fc
是十进制的252
,所以两者是等价的。
如果你真的需要得到十六进制编码的版本,那么考虑解析出十进制和converting it to hex在将其填充回 HEX;
格式之前。有点像
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/