如何将字符集设置为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"');