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


How to set the charset to UTF-8 for a received http variable in PHP?

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

我有一个html表单使用POST方法与1个输入字段。但是,当我提交的形式和回声检索的内容从输入字段通过$_POST['input_name']我得到这个:KrkiÄ -但我进入(和我需要)这:krkiki

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

我现在明白了。:)

如果我想添加MYSQL的内容,那么我需要添加这个:

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

如果我只需要回显内容,然后添加这个元标签

<meta charset="utf-8">

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

mb_internal_encoding只适用于多字节字符串系列函数,所以它只有在你已经使用它们时才有效果(你需要这样做,大多数时候你从PHP代码中操作多字节文本)。

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

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

每一个都需要独立解决,而且大多数时候它们之间也需要达成一致。

因此,仅仅说"我想显示一些字符"是不够的。您还需要显示如何显示它们,它们来自哪里以及HTML的广告编码是什么。

可以使用:

<meta charset="UTF-8" />

php文件的顶部放置

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