【问题标题】:How can I properly display German characters in HTML?如何在 HTML 中正确显示德语字符?
【发布时间】:2010-09-30 05:40:42
【问题描述】:

我的页面包含德语字符,我在 HTML 标记,但浏览器对某些字符的看法不同。是否需要在 HTML 中包含任何内容才能正确显示德语字符?

<label> ausgefüllt </label>

【问题讨论】:

  • 能否请您提供德语文本并指出哪些浏览器
  • 如果您在问题文本中提供此信息会很好,这样每个人都可以在不阅读 cmets 的情况下看到它。谢谢!

标签: html unicode localization


【解决方案1】:

您似乎需要一些基本的解释,不幸的是,即使是大多数程序员也无法正确理解。

像您的 HTML 页面这样的文件作为字节序列在 Internet 上保存和传输,但您希望它们显示为字符。为了将字节转换为字符,您需要一组称为character encoding 的规则。不幸的是,历史上出现了许多不同的字符编码来处理不同的语言。它们中的大多数都是基于美国的ASCII 编码,但是一旦你有 ASCII 之外的字符,例如German umlauts,你需要非常小心你使用哪种编码。

问题的根源在于,为了正确解码 HTML 文件,浏览器需要知道要使用哪种编码。你可以通过几种方式来告诉它:

因此,您需要选择一种编码,使用该编码保存 HTML 文件,并确保至少以上面列出的一种方式声明该编码(如果您使用超过一个确保他们同意)。至于使用什么编码,德国人通常使用ISO/IEC 8859-15,但UTF-8是一个很好的替代方案,可以同时处理任何类型的非ASCII字符。

【讨论】:

  • 您应该更改顺序:1. HTTP 标头字段,2. XML 声明,3. HTML META 元素。见w3.org/TR/html401/charset.html#h-5.2.2w3.org/TR/xml/#charencoding
  • UTF-8 现在实际上在德国相当普遍,并且在使用德语文本时可以发挥重要作用。如果 ISO/IEC 8859-15 不起作用,您绝对应该尝试 UTF-8 作为下一个选项。
【解决方案2】:

UTF-8 是你的朋友。

试试

<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">

并检查您的网络服务器在标头中发送的编码。

如果你使用 PHP,你可以用这种方式发送你自己的 headers(你必须把它放在任何其他输出之前):

<?php header('Content-Type: text/html; charset=utf-8'); ?>

还要仔细检查您是否以 UTF-8 保存了文档。

【讨论】:

  • 我已经在我的头标签中添加了,我还是得到了隐藏字符
  • 那么您的文档实际上可能没有以 UTF-8 保存
  • 您需要从网络服务器发送正确的标头。 META 标签是不够的
  • 解释:最初,它的目的是让网络服务器根据 标签解析文件并设置其标题,但网络服务器通常不会,并且没有指定如果他们不同意浏览器应该如何表现。
  • @brazzy:详细说明:w3.org/TR/REC-html40/charset.html#spec-char-encoding 并且在 W3C 网站上有一些关于此的 FAQ/QA 文章。
【解决方案3】:

在博文中尝试解决方案 German characters encoding issue (2012-05-10):

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

【讨论】:

    【解决方案4】:

    你试过&amp;uuml; (ü) 和&amp;Uuml; (Ü) 吗?

    您可以找到如何键入其他字母here

    【讨论】:

    • 考虑到这些将是多么普遍,这是非常不切实际的,他不应该也不必像这样编码
    • 也许吧,但这就是我的主页用瑞典字符编码的方式。
    • 这是一种解决方法,但幸运的是,如果您指定了正确的编码,则不再需要。很抱歉投了反对票,但周围有更好的解决方案。
    • 其实我并不知道。我想我是那些鲁莽地引用下面两篇文章的人之一。 ://
    【解决方案5】:

    声明&lt;META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8"&gt;

    在保存文件时,例如在记事本中,选择另存为 UTF-8 而不仅仅是 .txt。

    这应该可以显示字符。

    【讨论】:

      【解决方案6】:

      您可以尝试 utf8_encode() 或 utf8_decode() 函数。检查这些函数是否有效。

      例如&lt;?php echo utf8_encode('ausgefüllt'); ?&gt;

      希望它会奏效。

      【讨论】:

        【解决方案7】:

        听起来像是字符编码问题,因为文件保存为与网络服务器所说的不同的字符编码。

        【讨论】:

          【解决方案8】:

          我不喜欢使用 HTML 实体(例如 %uuml;),只有当你的字符集有问题时才需要它们。

          简而言之:

          正确的方法是修复你的字符集。

          简单的方法是只使用实体。您可能永远不会看到任何问题。

          跟踪字符集错误可能非常困难。如果您给我们一个可以看到问题的 URL,我们可能会给您一个很好的提示。

          【讨论】:

            【解决方案9】:

            使用 UTF8 保存为您的文件,并使用此 META:

            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
            

            【讨论】:

              猜你喜欢
              • 2014-03-14
              • 2013-12-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-10-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多