我有一些包含以下代码/值的字符串:
"You won\u0092t find a ...."
看起来该字符串包含Right Apostrophe特殊字符。
我不确定如何将其显示到Web浏览器。它会继续显示TOFU方盒字符。我的印象是unicode(hex)值00092可以转换为unicode(html)’
我的理解正确吗?
@ sam-axe建议我HtmlEncode unicode。那没用。这里是...
注意ampersand编码正确。
看起来好像有编码混淆。在.NET中,字符串通常编码为UTF-16,右撇号应表示为\u2019。但是在您的示例中,右撇号表示为\x92,这表明原始编码为Windows代码页1252。如果将字符串包含在Unicode文档中,则该字符\x92将无法正确解释。
您可以通过将字符串重新编码为UTF-16来解决此问题。为此,请将字符串视为字节数组,然后使用1252代码页将字节转换回Unicode:
string title = "You won\u0092t find a cheaper apartment * Sauna & Spa";
byte[] bytes = title.Select(c => (byte)c).ToArray();
title = Encoding.GetEncoding(1252).GetString(bytes);
// Result: "You won’t find a cheaper apartment * Sauna & Spa"
Run Code Online (Sandbox Code Playgroud)