4

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

表字符集

我的桌子

已安装 mbstring

extension=php_mbstring.dll

mbstring 配置在php.ini

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" />

代码

<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);

应该存储的数据 ->汉语

存储的原始数据

汉è¯Â

mysqli_set_charset($connectDB, "utf8");按照@Pekka 웃 的建议​​添加后,输出变为(下面也有评论

æ±è¯

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

�?语

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

并在 Firefox 中检查字符集。

在此处输入图像描述

这似乎是正确的,但仍然在某些字符上出现问号。有什么进一步的建议来完成这项工作吗?

4

2 回答 2

1

您快到了:确保 mySQL 连接也是 UTF-8 编码的。

查看UTF-8以了解详细信息。

于 2013-12-05T01:44:05.260 回答
0

我在朋友的帮助下解决了这个问题,数据没有从我的 HTML 表单正确插入到数据库中。似乎我的 mbstring 配置导致了问题,必须更新以下内容:

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

所以这些值只是恢复为默认值并且它工作得很好。

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

于 2013-12-10T01:28:21.717 回答