编码错误 - PhpMyAdmin / MySql

时间:2015-04-04 17:25:40

标签: python mysql encoding utf-8 phpmyadmin

我正在尝试使用mysql.connector模块向表中添加行。这些行是从txt文件中读取的。问题是,例如'č'或'ľ'sign可见为'?'在PhpMyAdmin。我尝试使用utf-8 bin中的operations按钮将数据库编码设置为PhpMyAdmin。该文件符合notepad++编码中的utf-8。我该怎么做才能解决它?

这里是一段插入数据库的代码:

with open('file') as f:
    for line in f:
        splitted = line.split('*')
        splitted = ["\'{0}\'".format(element) for element in splitted]
        insert = ', '.join(splitted)

        try:

            cursor.execute("""
              INSERT INTO table_data VALUES(DEFAULT,%s)
            """%(insert))

            cnx.commit()
        except:
            print 'ERROR'
cnx.close()

enter image description here

WAMP - MySQL控制台 - SELECT * FROM表片段: enter image description here

1 个答案:

答案 0 :(得分:1)

你到处都需要utf8。客户端中的utf8字节,告诉mysql您的客户端在列上,网页上有utf8字节,CHARACTER SET utf8等。

在你的屏幕截图中,你会显示一些正确的重音字符,有些不是。请提供工作/非工作的清单。 (其中一些就足够了。)你想用什么语言处理?

由于某些字符变成了'?',可能原因的数量有限。

请为{1}}提供一张有问题的表。

请为某些陷入困境的小组提供SHOW CREATE TABLE。如果它在十六进制中显示SELECT col, HEX(col)...,那里应该有重音字母,则问题出在输入上,并且数据无法恢复。

如果问题出在输入上,我会猜测您有非3F个字节进入latin1列。一旦我们修复了'输入,我们可以解决输出。

获取控制台'显示utf8字符:命令" chcp"控制"代码页"。 chcp 65001提供了utf8,但它也需要安装一个特殊的字符集。在控制台窗口中设置字体:右键单击窗口标题→属性→字体→选择Lucida控制台

My charset blog讨论了这些问题以及更多问题。