php - MySql/php utf8 似乎不能正常工作

标签 php mysql utf-8

所以我有一个具有相同字段的“utf8_general_ci”表。

我无法在其中输入任何 utf8 字符,它们都显示为“????” ,然后我将表更改为“MyISAM”,现在我可以从 PhpMyAdmin 插入 utf8 数据(第一次发生这种情况)。

但它仍然无法从 PHP 端运行。当我插入“āāā”时,它显示为“???”,但奇怪的是,如果我插入“žžžžēēē”,它显示为“žžž???”所以一些utf8字符有效吗? PHP 文件是 UTF-8

CREATE TABLE IF NOT EXISTS `company` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=5 ;

$dbConnection = mysql_connect("localhost","*****","*****");
mysql_query("SET NAMES 'utf8'", $dbConnection);
mysql_query("SET CHARACTER SET 'utf8'", $dbConnection);
mysql_select_db('cherrysystem', $dbConnection);
mysql_query("INSERT INTO `company` (`title`) VALUES ('āāčč')",$dbConnection);

已解决

好的,我的问题是我必须将 MySql ini 文件设置为使用 utf8。 默认情况下它是别的东西,我使用的是 Wamp 服务器,它总是在没有额外配置的情况下工作,但在这种情况下不是。

 character-set-server=utf8
 collation-server=utf8_general_ci

最佳答案

显然,您处理数据的方式不是“Unicode”。

以下是我最常怀疑的 7 个问题:

  • 包含代码的 PHP 文件本身不是 UTF-8
  • 数据库连接必须符合 Unicode (SET NAMES 'utf8')
  • 如果从非 unicode 源导入,插入的数据必须是utf8 编码,例如
  • 检查表用于存储数据的列
  • 用于显示数据的 HTML 文件不是 UTF(与第 1 点相同)
  • meta 标签 中声明的 HTML 字符集也必须是 utf-8
  • ...没有要点 7(可能在评论中)

希望这对您有所帮助!

关于php - MySql/php utf8 似乎不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10832412/

相关文章:

php - 如何存储和重置 PHP 数组指针?

php - 如何发出生成与 Firefox 相同的响应 header 的 cURL 请求

javascript - 使用 php 和 sql-query 的 AJAX POST 只能运行一次

java - 使用 JDBC 在 MySQL DB 中加载数据的最佳方法

python - 将波斯语字符串( UTF-8 )从 laravel API 传递到 python 文件

mysql - phpMyAdmin 无法正确显示或插入 Unicode 字符到数据库中

php - 访问 JSON 对象属性

mysql - #1060 - 重复的列名

php - MySQL 中的滑流数据库更改

php - 如何更改数据库连接的默认字符集?