表已经是utf8字符集,仍然在某些字符中出现问号

时间:2013-12-05 01:40:54

标签: php mysql utf-8 character-encoding mbstring

我正在尝试将我的编码更改为utf-8,以下是我目前所拥有的。

Table Charset

my table

已安装mbstring

extension=php_mbstring.dll

php.ini

中配置的mbstring
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On /*updated it to mbstring.encoding_translation = 0*/
mbstring.http_input = auto         /*updated it to mbstring.http_input = pass*/
mbstring.http_output = UTF-8       /*updated it to mbstring.http_output = pass*/
mbstring.detect_order = auto  
mbstring.substitute_character
default_charset = UTF-8
mbstring.func_overload = 7

标题

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

HTML元标记

<meta http-equiv="Content-type" value="text/html; charset=UTF-8" />

HTML CODE

<label for="article_body_pun">Article (Foreign): </label>
<textarea cols="100" rows="10" name="article_body_pun"></textarea><br />

PHP

$article_body_pun   = $_REQUEST['article_body_pun'];

SQL

$insert_article = "INSERT INTO articles(article_body_pun) 
                      VALUES ('{$article_body_pun}'')";

PHP插入

$article_query = mysqli_query($connectDB, $insert_article);

应存储的数据 - &gt; 汉语

存储原始数据

汉è¯Â

根据@Pekka웃的建议添加mysqli_set_charset($connectDB, "utf8");后,输出变为(以下评论

æ±è¯

经过一些故障排除后,数据部分存储正确。

�?语

尝试按mb_detect_encoding检查字符集,并在结果上获取UTF-8

并在检查firefox中的字符集时。

enter image description here

这似乎是正确的,但仍会在某些角色上出现问号。是否有任何进一步的建议可以使这项工作?

2 个答案:

答案 0 :(得分:1)

你快到了:确保mySQL连接也编码为UTF-8。

查看UTF-8 all the way through了解详情。

答案 1 :(得分:0)

我能够在朋友的帮助下解决问题,数据未正确地从我的HTML表单插入数据库。好像我的mbstring配置导致了问题,不得不更新以下内容:

mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = 0

因此这些值只是恢复为默认值并且完美运行。

感谢@Pekka웃和@Willem的帮助。