V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
christianwong
V2EX  ›  MySQL

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

  •  
  •   christianwong · Sep 4, 2013 · 3677 views
    This topic created in 4631 days ago, the information mentioned may be changed or developed.
    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友们帮忙!
    8 replies    1970-01-01 08:00:00 +08:00
    christianwong
        1
    christianwong  
    OP
       Sep 4, 2013
    文件B的编码也是GBK
    christianwong
        2
    christianwong  
    OP
       Sep 4, 2013
    卧槽,沉了,拯救一下
    xunyu
        3
    xunyu  
       Sep 4, 2013
    把mysql的属性编码改成utf8的可以不?
    likuku
        4
    likuku  
       Sep 4, 2013
    文件,DB表,DB连接,py文件,linux系统环境,以上统统使用UTF-8,从此以后妈妈再也不用担心你的学习了!
    9hills
        5
    9hills  
       Sep 4, 2013
    全用Unicode即可,编码问题这样就会变得非常简单

    如果非要从GBK读取和输出成GBK,那在读取和输出时转换即可
    christianwong
        6
    christianwong  
    OP
       Sep 4, 2013
    @9hills 好的,多谢!
    christianwong
        7
    christianwong  
    OP
       Sep 4, 2013
    @likuku 哈哈,多谢!
    christianwong
        8
    christianwong  
    OP
       Sep 4, 2013
    @xunyu 不好使
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   875 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 21:38 · PVG 05:38 · LAX 14:38 · JFK 17:38
    ♥ Do have faith in what you're doing.