我以前从未见过这些角色。我从IPBoard数据库中读出信息并将其显示在我的页面上。我看到的是:
( ゚ Д゚)
而不是这个(゚Д゚)
现在小心,这不是你在日本笑脸中看到的空间
我用过:
Server.HTMLDecode (and) HTMLEncode
但在这种情况下它们不起作用。
您之前是否有过这方面的经验并希望详细说明?
答案 0 :(得分:1)
如果你看一下 ゚ Д゚
的UTF-8编码的bin-hex表示,那么它看起来像:
ef bc 88 e3 80 80 ef be 9f 20 d0 94 ef be 9f ef bc 89
我将此数据解释为Windows-1252编码的字符串,然后得到:
( ゚ Д゚)
所以看起来IPBoard数据库返回一个UTF-8编码的字符串,服务器或浏览器将其解释为Windows-1252字符串。
如果是浏览器,请确保http响应标头指示响应为UTF-8 Content-Type: text/html; charset=utf-8
或在html标头中添加以下元标记:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
答案 1 :(得分:1)
您遇到编码问题。序列需要读作UTF-8:
byte[] bytes = {
0xEF, 0xBC, 0x88, 0xE3,
0x80, 0x80, 0xEF, 0xBE,
0x9F, 0x20, 0xD0, 0x94,
0xEF, 0xBE, 0x9F, 0xEF,
0xBC, 0x89, 0x0D, 0x0A,
0xEF, 0xBE, 0x9F
};
string t = System.Text.Encoding.UTF8.GetString(bytes);
System.Diagnostics.Trace.WriteLine(t);