【问题标题】:£ pound sign not displayed correctly in html document英镑符号在 html 文档中未正确显示
【发布时间】:2013-01-23 22:11:45
【问题描述】:

我正在使用http://www.datatables.net/数据表,表中显示的数据是动态检索的。

有人可以帮忙吗?

在 html 文档本身中输入时,井号显示正常。在 ajax 数据 url 中查看时也显示良好。

更新

我刚刚意识到 csv 文件的内容实际上并不是 utf-8 格式。如何确保上传是 utf-8 格式。

问候

【问题讨论】:

  • 似乎是字符集问题。尝试将您网站文件的字符编码设置为 UTF-8。
  • 数据输入必须是 UTF-8 格式。数据库编码必须是 UTF-8。页面编码必须是 UTF-8。 UTF-8 端到端或死亡。
  • 我有 utf-8 端到端。这就是它如此令人困惑的原因。
  • 另外,str_replace("£", "£", $data) 不适用于 ajax 数据。数据是从 utf-8 csv 文件中解析出来的,其中 £ 符号存储为 £。

标签: html ajax encoding datatable


【解决方案1】:

您是否尝试过使用£ 而不是通常的£?还可能需要将您的字符集设置为 UTF-8

【讨论】:

  • 我假设他不想更改数据行,如果他将它们存储在例如 MYSQL 中。字符编码显然是这里的问题。
  • 正在从 utf-8 csv 文件中读取数据并输出到 utf-8 ajax 请求中。
【解决方案2】:

我现在已经在上传之前过滤了井号的 csv 文件,并在稍后附加了它。我正在使用这个 hack。

【讨论】:

    【解决方案3】:

    如果您想拒绝非 UTF-8 文件,您可以这样做:

    if( !mb_check_encoding( $str, "UTF-8") ) {
        header("HTTP/1.1 400 Bad Request");
        die("File must be in UTF-8 encoding");
    }
    

    $str是读入PHP字符串的文件内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 2017-12-27
      相关资源
      最近更新 更多