1

可能重复:
一直到 UTF-8

我正在从带有 Café 字样的网络上用 curl 抓取数据。当我回显它时它看起来很好,但在插入 mysql 数据库后它变成了 Café
如何处理它。

4

2 回答 2

2

PHP:内部编码,文件编码

运行时配置:

mb_internal_encoding("UTF-8");

并将文本编辑器中的文件编码设置为不带 BOM 的 UTF8(例如在 Notepad++ 中:编码菜单,然后在不带 BOM 的情况下转换为 UTF8)

MySQL:表、列编码/整理

在您的编辑器/设计器 (PhpMyAdmin) 中将所有编码和排序规则设置为 UTF8。

它们之间:连接编码/整理

我不知道您使用的是什么驱动程序,用于 mysqli (以及用于 mysql 但请不要使用它):

"SET CHARACTER SET 'utf8'"
'SET NAMES utf8'

PDO 对此有自己的配置,请参阅 php.net。

响应编码

使用标头调用设置它:

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

于 2012-10-25T08:00:13.127 回答
1

您需要检查几件事。首先检查您使用的表上的编码是否能够支持您需要的任何特殊字符。使用类似的东西utf-unicode-ci。我建议阅读一下这些内容。

有几种 utf8 字符编码,它们针对不同语言的搜索进行了优化,因此它们的名称。有关 unicode 字符集的更多信息,请阅读此处

您还必须确保您的连接知道您在 php.ini 中使用的字符编码。

于 2012-10-25T08:00:10.937 回答