python和mysql中处理中文字符的问题

2013-09-04 14:33:41 +08:00
 christianwong
linux上python写的一个程序:

1. 本地有一个文件A,有两列:name 和 score, name取值为一些中文字符串,score为1-10的打分,A的格式是GBK

2. 将A中的数据遍历插入到MySQL数据库表tb_name_score中,tb_name_score的name属性编码为latin1_swedish_ci

3. 本地有一个新的文件B,也有两列,name和score,目前想遍历文件B,将MySQL表tb_name_score中对应的name的打分更新

4. 为了实现3必须在sql语句中进行name相等的判断,由于name是中文字符串,目前即使是相等的字符串也被判断为不相等。

在网上找了几个其它的方法,比如locate,like binary,都不好使,求V友们帮忙!
2995 次点击
所在节点    MySQL
8 条回复
christianwong
2013-09-04 14:34:34 +08:00
文件B的编码也是GBK
christianwong
2013-09-04 17:22:44 +08:00
卧槽,沉了,拯救一下
xunyu
2013-09-04 17:55:42 +08:00
把mysql的属性编码改成utf8的可以不?
likuku
2013-09-04 18:22:37 +08:00
文件,DB表,DB连接,py文件,linux系统环境,以上统统使用UTF-8,从此以后妈妈再也不用担心你的学习了!
9hills
2013-09-04 18:26:08 +08:00
全用Unicode即可,编码问题这样就会变得非常简单

如果非要从GBK读取和输出成GBK,那在读取和输出时转换即可
christianwong
2013-09-04 23:38:22 +08:00
@9hills 好的,多谢!
christianwong
2013-09-04 23:38:43 +08:00
@likuku 哈哈,多谢!
christianwong
2013-09-04 23:39:27 +08:00
@xunyu 不好使

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/81284

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX