【问题标题】:How to make a .htm page accept letters of languages other than english?如何使 .htm 页面接受英语以外的语言字母?
【发布时间】:2016-05-09 16:59:18
【问题描述】:
目前我正在开发一个将 .msg 文件转换为 pdf 的应用程序。我正在使用将html转换为pdf文件的pdf转换器。因此,我将电子邮件转换为html,然后使用该工具将其转换为pdf。在我尝试将法语电子邮件转换为 pdf 之前,一切正常。当我使用 notepad++ 打开法语电子邮件的 .htm 文件时,它显示法语重音字母(é、à、ù、ê、ë、...)很好,但是当我在浏览器中打开它时,法语重音字母被更改为一些奇怪的符号。当,我在 html 中添加了“meta http-equiv="content-type" content="text/html;charset=utf-8"标签。它开始正确显示法语字母。
那么,这个“元”标签会让 html 对所有可能的法语字母都有效吗?还是只有选择性的?
还有任何标签可以使 html 接受来自任何语言的字母吗?
提前致谢。
【问题讨论】:
标签:
html
utf-8
character-encoding
meta
【解决方案1】:
计算机处理二进制数据。在底层,就计算机而言,HTML(或其他类型的文本)文档中的所有字符(字母、数字、标点符号等)只是 1 和 0 的组。
这些 1 和 0 组代表哪些字符取决于字符编码的选择。
Unicode 编码,包括 UTF-8,几乎可以代表任何人类语言。
如果文档实际上是用 UTF-8 编码的,并且您告诉浏览器它是用 UTF-8 编码的,那么您极不可能遇到无法表示的字符。
如需进一步阅读,请以Character encodings: Essential concepts开头
【解决方案2】:
UTF-8 (Unicode) 几乎涵盖了世界上所有的字符和符号。
要正确显示 HTML 页面,网络浏览器必须知道页面中使用的字符集。
这是在<meta> 标签中指定的:
对于 HTML4:
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
对于 HTML5:<meta charset="UTF-8">
注意:如果浏览器在网页中检测到 ISO-8859-1,则默认为 ANSI,因为 ANSI 与 ISO-8859-1 相同,只是 ANSI 有 32 个额外字符。
您可以获取更多信息here。