【问题标题】:How to set the charset to UTF-8 for a received http variable in PHP?如何在 PHP 中将接收到的 http 变量的字符集设置为 UTF-8?
【发布时间】:2013-04-09 12:44:58
【问题描述】:

如何在 PHP 中将接收到的 http 变量的字符集设置为 UTF-8?

我有一个使用 POST 方法和 1 个输入字段的 html 表单。但是当我提交表单并通过$_POST['input_name'] 回显从输入字段中检索到的内容时,我得到了这个:KrkiÄ - 但我输入(并且我需要)这个:Krkič

那么我该如何解决这个问题?

我现在想通了。 :)

如果我想将内容添加到 MYSQL,那么我需要添加:

if(!$mysqli->set_charset("utf8")){
printf("Error loading character set utf8: %s\n",$mysqli->error);
}

如果我只需要回显内容然后添加此元标记

<meta charset="utf-8">

进入html头就够了。

【问题讨论】:

  • 您是否在 HTTP 标头中设置了字符集? (即header('Content-Type: text/html; charset="UTF-8"');)。此外,当使用 htmlentities() 函数时,您可以使用 htmlentities($string, ENT_COMPAT, "UTF-8") 调用它
  • 您使用 Apache 作为网络服务器吗?
  • 在您的 IDE 中更改它。
  • 在浏览器/html 文件中显示它不是问题。当我尝试通过 POST 表单将某些内容添加到我的数据库(MYSQL)中时,就会出现问题。如果我只是 ECHO 内容,那么一切正常。
  • 我现在试试header('Content-Type: text/html; charset="UTF-8"');。 1 时刻。 :)

标签: php character-encoding


【解决方案1】:

PHP 中没有全局默认字符集——很多东西都是编码感知的,每个都需要独立配置。

mb_internal_encoding 仅适用于多字节字符串系列函数,因此仅当您已经在使用它们时它才会生效(您需要在大多数情况下从 PHP 代码中操作多字节文本)。

编码设置不正确会给您带来问题的其他地方包括:

  • 源文件本身(使用哪种编码保存在磁盘上?)
  • 发送到浏览器的 HTTP 标头(显示接收到的内容为哪种编码?)
  • 您的数据库连接(应该使用哪种编码来解释您的查询?返回给您的结果使用哪种编码?)

每个问题都需要独立解决,而且大多数情况下,它们还需要彼此达成一致。

因此,仅仅说“我想显示一些字符”是不够的。您还需要说明您是如何显示它们的、它们来自哪里以及所宣传的 HTML 编码是什么。

【讨论】:

  • The source itself - 如果我是正确的,那么我不需要在此处设置字符集,因为我通过 html 输入字段插入内容,而不是直接从保存在磁盘上的文件中插入内容。 Database 字符集工作正常。我想我缺少的是HTTP POST 字符集。我只是不知道我是否必须设置显示表单的html文档的字符集或php中的某个地方,以便在我提交表单后设置字符集?
  • @johansmohan:HTML 输入字段不言而喻,因此没有添加任何信息。请编辑您的问题并添加SSCCE。猜测是一种浪费任何人时间的坏方法,包括你自己的时间。
  • 我已经编辑了我的问题。希望现在更容易理解我的问题。
  • @johansmohan:细节上仍然很清楚,但听起来好像在两个页面(显示表单的页面和接收提交的页面)上都使用 Content-Type 标题应该可以正常工作。
  • 谢谢乔恩。在它如何工作之前,我对它的理解不够好。但在研究和测试之后,我得到了它的工作。 :)
【解决方案2】:

你可以使用:

<meta charset="UTF-8" />

【讨论】:

    【解决方案3】:

    在您的 php 文件顶部放置此

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      相关资源
      最近更新 更多