V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX  ›  Python

现在有些手机都有表情 emoji 等多字节字符,用 utf-8 不够用了,要是用 mysql5.5 5.6 的话怎么解决?我知道用 5.7 可以用 utf8mb4.还有什么好办法? 或流行的

  •  
  •   python30 · Dec 24, 2018 · 4178 views
    This topic created in 2682 days ago, the information mentioned may be changed or developed.
    20 replies    2018-12-24 12:42:25 +08:00
    des
        1
    des  
       Dec 24, 2018 via Android
    你是不是对 utf8 有什么误解,什么叫 utf8 不够用了?
    occam88
        2
    occam88  
       Dec 24, 2018 via iPhone
    UTF-8 是变长编码,应该不会出现不太够的情况把
    shoaly
        3
    shoaly  
       Dec 24, 2018
    json_encode 可解
    agostop
        4
    agostop  
       Dec 24, 2018
    5.5 也有 mb4 吧
    lhx2008
        5
    lhx2008  
       Dec 24, 2018 via Android
    5.5 就有 mb4,还有一种方法就是入库前替换成英文别名
    FreshOldMan
        6
    FreshOldMan  
       Dec 24, 2018
    上次看了稀里糊涂的,貌似 utf8 是可变的?
    fy
        7
    fy  
       Dec 24, 2018
    utf8 类型只能容纳三个字节是 MySQL 独有的,utf8mb4 这种东西也是 MySQL 独有的,实际按照标准有 6 个字节可以用。至于说不够用了怎么办?再把页表掏出来用呗,最后再弄一个新的 uni-unicode 就完了
    python30
        8
    python30  
    OP
       Dec 24, 2018
    @lhx2008 这个怎么替换? 指导一下?
    python30
        9
    python30  
    OP
       Dec 24, 2018
    @shoaly 刚百度了一下. json_encode 是 php 的? django 的话怎么用?
    lhx2008
        10
    lhx2008  
       Dec 24, 2018 via Android
    @python30 去 github 找轮子,笑脸替换成:smile:,要有个表才行
    U7Q5tLAex2FI0o0g
        11
    U7Q5tLAex2FI0o0g  
       Dec 24, 2018
    最保险,最方便,最一刀两断的是升级 mysql。5.6 就可以了支持 utf8mb4 了。
    jasonhzy
        12
    jasonhzy  
       Dec 24, 2018
    https://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-3.html 文档里已经说明 mysql5.5.3 以上均已支持 utf8mb4
    cloverstd
        13
    cloverstd  
       Dec 24, 2018 via iPhone
    存成 blob
    NullWithMe
        14
    NullWithMe  
       Dec 24, 2018
    utf8mb4 可以
    DavidNineRoc
        15
    DavidNineRoc  
       Dec 24, 2018
    楼主描述不清楚导致楼上的可能有些什么误解。
    表情四个字符,utf8 三个字节存储。
    最优:换 utfmb4
    程序:json 内容,然后正则处理
    曲线救国:base64 解决任何一切编码问题 >_<
    NeinChn
        16
    NeinChn  
       Dec 24, 2018
    base64 拯救一切....
    shooyaaa
        17
    shooyaaa  
       Dec 24, 2018
    我以前用过 base64 编码再存
    keepfun
        18
    keepfun  
       Dec 24, 2018 via iPhone
    楼上说的 base64 是正解 我也这么干过
    BOYPT
        19
    BOYPT  
       Dec 24, 2018
    mysql 的 utf8mb4 是正常的 utf8,mysql 的 utf8 是早产儿先天残废,程序里面按 utf8 处理然后给 utf8mb4 存储才是正常途径。
    mmdsun
        20
    mmdsun  
       Dec 24, 2018 via Android
    mysql utf-8 真是坑了不少人
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3528 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 11:46 · PVG 19:46 · LAX 04:46 · JFK 07:46
    ♥ Do have faith in what you're doing.