【发布时间】:2012-03-24 23:00:13
【问题描述】:
我正在使用 Amazon 的 RDS,但在从数据库中读取 utf 数据时遇到了困难。结果显示为非 utf 字符,因此在 db 中使用 utf-8 编码时,它们显示为坏字符。
数据库是从另一个 MySQL 数据库(不是 Amazon RDS)转移的,当代码与该数据库通信时一切正常。
我检查了所有表上的字符集和整理,以及数据库本身,它们都是 UTF-8 和 utf_general_ci
页面使用像这样的 utf-8 编码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
我也尝试传递此查询“SET NAMES utf8”,但仍然没有帮助。
我注意到其他人在使用 RDS 时遇到了同样的问题
Can't store UTF-8 in RDS despite setting up new Parameter Group using Rails on Heroku
给他们的解决方案是在连接字符串中指定字符集,该解决方案显然适用于rails,但在PHP中我认为没有连接字符串这样的东西。
这就是我连接mysql的方式
mysqli_connect($this->host, $this->login, $this->pw, $this->database)
此外,如果我将这些列的数据类型更改为二进制数据类型,例如 BLOB,它们将正常工作。
【问题讨论】:
标签: php utf-8 amazon-web-services amazon-rds