我正在使用ASP.NET MVC、MS SQL和IIS。我的一些用户在其个人资料信息中使用了中文字符。然而,在显示此信息时,它会显示为æŽå¼·è¯
,但是它们在我的数据库中是正确的。目前,我的HTML页面的UTF设置为UTF-8。我应该将它更改为UTF-16吗?我知道这样做可能会有一些问题,但我有哪些选择?
UTF-8和UTF-16编码覆盖的字符集是完全相同的。不是因为UTF-8不能包含中文字符而UTF-16可以。
UTF-16使用固定的16位来表示一个字符;而UTF-8使用1、2、3,最多4个字节不等的长度,根据不同的字符来进行编码,因此ASCII字符仍然只使用1个字节表示。
请参考维基百科了解更多有关Unicode的内容。
因此,切换到UTF-16几乎没有任何帮助作用。正如您在上面链接的SO问题中所讨论的那样,这可能会使情况变得更糟。实际上问题出现在您的设置中其他地方,没有正确考虑非ASCII或非Latin-1字符。确保设置的每个部分都使用UTF-8。
htmlentities()
还是htmlspecialchars()
? - Andrew67