我正在尝试使用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()
WAMP - MySQL控制台 - SELECT * FROM表片段:
答案 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讨论了这些问题以及更多问题。