将网页的编码更改为Unicode

你可能听说过使用Unicode(UTF-8)而不是Latin1(Windows 1252或ISO 8859-1)或Shift_JIS等传统字符编码有用,并且你听说其他人也在这样做,但你不确定该如何做。

本页面将帮助你将网页的字符编码更改为UTF-8。

答案

下面我们总结了将一个简单的页面转换为Unicode字符编码所需的信息。如果你需要获取有关任何步骤的详细信息,请点击网站上其他文章的链接。

有关将复杂站点、软件和数据转换为Unicode的更多详细建议,请参阅文章迁移到Unicode

第一步:将文件保存为UTF-8

仅仅将页面内的声明更改为UTF-8编码是不够的,你必须确保文件实际上是以UTF-8格式保存的。

如果你的文件是手动编辑的,那么你应该使用编辑器将文件保存为UTF-8编码,而不是你原来用的编码。如果你从脚本和数据库构建文件,你应该根据需要转换数据并在你的脚本环境中设置正确的参数。

请注意,你可能需要确保数据不包含UTF-8签名,也称为字节顺序标记 (BOM)。

第二步:在页面中声明编码

你应该更改页面中的字符编码声明(如果你还没有声明,则需要添加一个)。

最简单的形式看起来如下所示,这应该出现在HTML代码中head元素的开头。

<meta charset="utf-8">

第三步:确保你的服务器做着正确的事

尽管你的数据是UTF-8格式,你也在页面中声明了它,但你的服务器可能仍然附带一个表明它是其他编码的HTTP标头(header)。

把页面的URL粘贴到这里来进行测试,它将带你到W3C的Internationalization Checker。在表中找到标题为HTTP Content-Type的行,在Character Encoding下,检查它是UTF-8还是No encoding information found

如果HTTP Content-Type显示的编码不是UTF-8,你需要采取措施纠正它,因为HTTP标头中的声明将覆盖页面内的信息。

虽然通常需要服务器管理员权限才能更改HTTP标头中发送的编码,但即使你通过ISP提供文件,你也可以自己这样做,相关内容请咨询你的服务器管理员。请参阅对Apache服务器执行此操作的一种方法的说明。