iso-8859-1是否显示德语umlauts ok或我是否需要使用utf-8?

iso-8859-1是否显示德语umlauts ok或我是否需要使用utf-8?,utf-8,character-encoding,http-headers,iso-8859-1,Utf 8,Character Encoding,Http Headers,Iso 8859 1,我有一个多语言网站,它托管在一个服务器上,该服务器似乎将字符编码设置为默认的iso-8859-1 我想我最好有utf-8页面,并包含一个元标记来声明这一点。不幸的是,这个元标记似乎被覆盖,页面默认为iso-8859 德语和荷兰语页面中的许多特殊字符显示不正确 我是否需要尝试将服务器默认值更改为utf-8或其他什么?也许我可以完全删除服务器默认设置?隐马尔可夫模型。。。真的不知道在这里做什么最好 任何建议都很好 通过HTTP提供HTML页面时,不使用内容类型的HTML元标记。相反,将使用HTTP响

我有一个多语言网站,它托管在一个服务器上,该服务器似乎将字符编码设置为默认的iso-8859-1

我想我最好有utf-8页面,并包含一个元标记来声明这一点。不幸的是,这个元标记似乎被覆盖,页面默认为iso-8859

德语和荷兰语页面中的许多特殊字符显示不正确

我是否需要尝试将服务器默认值更改为utf-8或其他什么?也许我可以完全删除服务器默认设置?隐马尔可夫模型。。。真的不知道在这里做什么最好


任何建议都很好

通过HTTP提供HTML页面时,不使用内容类型的HTML元标记。相反,将使用HTTP响应中的内容类型头。例如,您可以在网络面板中确定内容类型标题

如何改变这一点取决于您正在使用的编程语言和/或Web服务器,您目前的问题还不清楚这一点。根据您询问的历史,您似乎正在使用PHP。在这种情况下,在向响应发出任何字符之前,需要将以下行添加到PHP文件中

header('Content-Type: text/html; charset=UTF-8');
另见:

如果无法更改HTTP响应头,则必须提供有关所用编程语言和Web服务器的更多详细信息。这样我们可以给你更合适的答案


如果您想坚持ISO-8859-1,那么您需要确保页面也保存为ISO-8859-1,而不是UTF-8。否则,当您将UTF-8保存的资源显示为ISO-8859-1时,某些字符可能确实会消失。

有几种可能的解决方案,但最干净的解决方案是正确声明您的字符编码

当从HTTP服务器为网页提供服务时,编码通常不是由HTML文件的元标记给出的,而是由
Content-type
HTTP头给出的

Web服务器可能正在发送类似
内容类型的内容:text/html;charset=ISO-8859-1
,您需要更改它

如何做到这一点取决于Web服务器


作为补充:是的,iso-8859-1适用于德语;它将适用于所有西欧语言。但是,它缺少几个字符,尤其是欧元符号(iso-8859-15)。但是使用UTF-8更好,因为它涵盖了几乎所有的语言。

您可以在中看到支持的字符和应该涵盖的语言。根据这一点,德语得到了充分支持,而荷兰语几乎得到了支持


这不仅仅是选择正确的字符编码的问题,还必须使用该编码保存页面。如果将页面另存为ISO-8859-1,并且使用的内容类型显示为UTF-8,则浏览器将错误地解码该页面。ISO-8859-1和Unicode都支持您需要的字符,但您必须确保内容类型与页面的实际保存方式相对应。

实际上,ISO-8859-1包括德语和荷兰语。首先你不需要去utf-8@dkarp:一个“多语言网站”建议覆盖的不仅仅是德语和荷兰语。在这种情况下,UTF-8对于未来安全的语言扩展是强制性的。目前,问题的标题是“iso-8859-1是否可以显示德语umlauts,或者我是否需要使用UTF-8?”答案是“iso-8859-1将显示德语字符,没有问题”。谢谢大家。我已将肉类标签更改为iso-8859-1,并将页面保存为iso-8859-1。这似乎成功了。这一定是一个问题,因为http头被设置为默认iso-8859-1,并且我已使用utf-8元标记将页面保存为utf-8。这会被http头覆盖,但我想这两者之间的差异一定是造成问题的原因。现在一切似乎都好了!:o) 在实践中,“ISO-8859-1”通常被解释为类似的windows-1252编码,它有
以及像
“––
。尽管如此,我还是推荐UTF-8。@dan04:是的,人们把ISO-8859-1和CP-1252混在一起是这样的。但它仍然是邪恶的:-/。只是吹毛求疵:ISO-8859-1对杰曼和达奇来说不一定足够,因为缺少欧元符号。