【发布时间】:2013-06-11 17:26:33
【问题描述】:
我已经阅读了将 MySQL 表/DB 从默认的 latin-1 字符集设置为 UTF8_general_ci 的信息,在我的 Python 脚本中将特定的 unicode 字符串插入 MySQL 表时出错。我删除了整个数据库,并重新创建了它:
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
然后我在这个模式中创建了我的表,并附加了:
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
我有一个 Python 脚本通过 MySQLdb 驱动程序输入到表中,我在脚本开头指定了字符集:
connectToDb = mdb.connect(host="localhost",
user="me",
passwd="me",
db="me",
charset="utf8",
use_unicode=True)
记录送入数据库表而没有编码错误。我的问题是我有一个从这些记录运行的数据库驱动的 Intranet 站点(使用 PHP 脚本创建表条目),当我使用 Chrome 访问网络时,<td> 中的许多记录都显示为包含字形页面。
我在页面的 HTML 中将我的 PHP 连接指定为:
$connect = mysql_connect("localhost",$usrname,$password,"charset='utf8'");
特别是 GB 的“£”符号引起了攻击(当我检查 PHPmyadmin 时,我可以看到它在 GUI 中是一个“£”符号)。
我不知道是什么原因,你能帮忙吗?谢谢。
编辑:HTML 页面还声明了以下内容:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
【问题讨论】:
标签: php python mysql encoding utf-8