【问题标题】:€ symbol rendering as €2€符号呈现为€2
【发布时间】:2011-05-19 18:22:24
【问题描述】:

这里有一个不寻常的问题:我有一个应用程序使用一个文本文件,该文件包含一些“€”符号以及文本文件中的其他文本来填充 mysql 数据库。在本地渲染时,€ 符号看起来不错,但在 linux 服务器上和 web 上的 html 中,它在某些浏览器中看起来像这样:

‚¬2

任何人都可以提出解决方案

【问题讨论】:

  • 您的 HTTP 响应标头是否包含正确的 Content-TypeContent-Encoding?例如:Content-Type: text/html; charset=utf-8.
  • 我发现有关字符编码的 W3C 文章很有用,请参阅 w3.org/International/tutorials/tutorial-char-enc 以及从那里链接的其他文章。

标签: mysql html linux symbols


【解决方案1】:

如果您在浏览器窗口中将文本 (.txt) 文件视为文本而不是 HTML,请设置

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

在处理文本文件时不会完成这项工作

因此标签不会被“隐藏”,而且它可能(甚至很可能)将垃圾发送到您尝试填充的 mysql 数据库(例如,通过自动收集发布的在线文件)。

所以,如果在浏览器窗口中而不是:

123.39 欧元

你看到了

€2 123.39

问题不在于文本文件的质量,而在于浏览器处理编码的方式。

如果您需要复制和粘贴显示的文件并且“€2”会妨碍您,
简单地尝试将您的浏览器默认编码设置为 unicode (UTF-8)。

在FF你想在这里做:

工具-> 选项-> 内容(选项卡)-> 字体和颜色-> 高级-> 默认字符。编码

在那里选择 UTF-8 编码。

请记住,由于浏览器缓存,有时页面重新加载可能不足以查看更改。在这种情况下,请重新启动您的浏览器。

【讨论】:

    【解决方案2】:

    在您的文件上使用 UTF-8 编码类型,并确保在您的页面上添加内容类型 meta 标记:

    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
    

    希望这会有所帮助!

    【讨论】:

    • @Paul - 很高兴能帮上忙! :)
    • 它在所有情况下都不适用于我......我在使用 WAMP 服务器的 Windows 7 机器上。在 Firefox 和 IE 中:没问题,但 Chrome 仍将 € 呈现为 €。我在源代码中有完全提到的元标记。响应标头包含“Content-Type:text/html”等,所以我猜这很好。任何人都知道为什么 Chrome 不能正确呈现这个吗?
    • @Myself:HTML 开头之前有内容。当我处理好它时,它突然起作用了。当输出发生在 之前时,Chrome 可能会忽略 META 标记。总之,问题解决了:)
    【解决方案3】:

    将标题中的字符集或 &lt;META&gt; 元素设置为 UTF-8,这样它就不会被作为 CP1250 处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多