V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

“𥻗”这种字,插入 MySQL 数据库,插不进去,插进去以后显示??怎么处理?

  •  
  •   coolair · 2017-04-01 17:14:20 +08:00 · 1952 次点击
    这是一个创建于 2596 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2017-04-01 18:26:38 +08:00
    大家不要用 MySQLdb 这个库,用 pymysql 解决所有问题。
    8 条回复    2017-04-03 12:19:43 +08:00
    johnny23
        1
    johnny23  
       2017-04-01 17:17:24 +08:00 via iPhone
    可以插米查
    SourceMan
        2
    SourceMan  
       2017-04-01 17:18:40 +08:00 via iPhone
    谁跟我一样觉得好污的吗??

    楼主可以看下是不是需要跟存储 emoji 一样用其它编码格式
    FifiLyu
        3
    FifiLyu  
       2017-04-01 17:19:20 +08:00
    确认表或数据库使用的编码是 utf-8 。
    使用 utf-8 编码,是不会有这种问题的。
    raptium
        4
    raptium  
       2017-04-01 17:21:25 +08:00
    utf8mb4 应该可以,𥻗 用 UTF-8 编码需要 4 个字节, MySQL 普通的 utf8 只支持最多 3 个字节

    https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html
    coolair
        5
    coolair  
    OP
       2017-04-01 17:24:11 +08:00
    @johnny23
    @SourceMan
    @FifiLyu
    @raptium 我是用的 utf8mb4 ,刚刚测试了下,直接用 phpmyadmin 可以插入,但是用 DataGrip 和用 Python 的 MySQLdb 插入的时候,却报错:
    [HY000][1366] Incorrect string value: '\xF0\xA5\xBB\x97\xF0\xA5...' for column 'name' at row 1
    billlee
        6
    billlee  
       2017-04-01 19:47:57 +08:00
    你用的是 mysql-python 还是 mysqlclient?
    pymysql 的性能比 MySQLdb 差很多
    coolair
        7
    coolair  
    OP
       2017-04-01 22:54:57 +08:00 via Android
    @billlee 我用的 MySQL-python 这个库。
    billlee
        8
    billlee  
       2017-04-03 12:19:43 +08:00
    r#7 @coolair 你可以试试 mysqlclient, API 也是 MySQLdb. Mysql-python 都几年没更新了,我记得那个时候 mysql 都还没有 utf8mb4.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3398 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:10 · PVG 19:10 · LAX 04:10 · JFK 07:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.