告诉MySQL连接在Django中使用UTF-8
我已经使用UTF8编码将一些数据上传到MySQL(osx10.6为5.5.15)数据库,不过出于某种原因,我在加载它时不得不将其编码指定为latin1 我认为这一部分是好的,因为当我向OUTFILE写入时,我的unicode“nu”字符在终端和Vim中显示正常 然而,当我在MySQL会话中查看这些字段时,当我试图从Django admin编辑字段时,我会发现字符被弄乱(拉丁文1?) 所以,我的问题是:如何告诉MySQL客户机和(特别是)Django以UTF-8的方式读取我的数据库 在命令行中,我尝试了告诉MySQL连接在Django中使用UTF-8,mysql,django,unicode,utf-8,Mysql,Django,Unicode,Utf 8,我已经使用UTF8编码将一些数据上传到MySQL(osx10.6为5.5.15)数据库,不过出于某种原因,我在加载它时不得不将其编码指定为latin1 我认为这一部分是好的,因为当我向OUTFILE写入时,我的unicode“nu”字符在终端和Vim中显示正常 然而,当我在MySQL会话中查看这些字段时,当我试图从Django admin编辑字段时,我会发现字符被弄乱(拉丁文1?) 所以,我的问题是:如何告诉MySQL客户机和(特别是)Django以UTF-8的方式读取我的数据库 在命令行中,我
--default_character_set=utf8
而且
'SET NAMES UTF8;'
在MySQL提示符下,但它们不起作用
当我查看像“char%”这样的变量时,除了character_set_server(拉丁字母1)之外,它们都被设置为utf8。如果我将其设置为utf8。。。。那也不行
如果有人能在这里给我一些建议,特别是关于如何配置Django以正确地与我的数据库通信,我将不胜感激
谢谢 添加您的
.cnf
:
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake
我在/etc/my.cnf中有这个(使用utf\u unicode\u ci作为排序规则\u服务器),但它似乎不起作用(尽管它确实将字符\u set\u服务器设置为utf8)。我很困惑…你是如何安装MySQL的?我怀疑它使用了另一个
/etc/my.cnf
配置文件。加载它时必须指定latin1是什么意思?通常,您应该在创建数据库时使用以下命令指定UTF-8:“创建数据库dbname字符集utf8 COLLATE utf8_general_ci;”数据库本身是UTF-8,collation UTF_unicode_ci,但是如果我将数据本地填充加载到表字符集utf8中,我会得到问号,并且根据互联网上其他地方的各种帖子,如果我指定了(不正确的)‘字符集1’,它似乎只能以正确的编码上传。非常混乱。