V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
l890908
V2EX  ›  程序员

Thinkphp3 从数据库读取 “𬭶”“𬬻”“𬭸”“𫟷”和所有 emoji 全部显示两个问号,编码是 utf8

  •  
  •   l890908 · Nov 16, 2019 · 2751 views
    This topic created in 2354 days ago, the information mentioned may be changed or developed.
    数据库编码是 utf8mb4_general_ci

    ThinkPHP3 编码配置为默认的 utf8,其他中文字英文都能从数据库都去并显示正确,唯独这些偏僻字显示两个??,emoji 也无法识别显示一个??,按道理 utf8mb4_general_ci 应该是都可以识别的

    可能是啥原因?
    13 replies    2019-11-18 09:09:07 +08:00
    vibbow
        1
    vibbow  
       Nov 16, 2019
    你连接用的编码呢?
    wangyzj
        2
    wangyzj  
       Nov 16, 2019
    把 ThinkPHP3 编码配置改为 utf8mb4_general_ci
    l890908
        3
    l890908  
    OP
       Nov 16, 2019
    @vibbow 连接编码是默认的 utf8 -》'DB_CHARSET' => 'utf8', // 数据库编码默认采用 utf8
    输出编码也是 utf-8 'DEFAULT_CHARSET' => 'utf-8', // 默认输出编码
    l890908
        4
    l890908  
    OP
       Nov 16, 2019
    @wangyzj 这样不行,设置成 utf8mb4 就所有中文都是乱码了
    renmu
        5
    renmu  
       Nov 17, 2019 via Android
    随便提个猜想,机器字体不支持
    also24
        6
    also24  
       Nov 17, 2019
    『数据库编码是 utf8mb4_general_ci 』

    是否有检查具体的表和字段的编码?
    vibbow
        7
    vibbow  
       Nov 17, 2019
    连接编码需要是 utf8mb4
    wangyzj
        8
    wangyzj  
       Nov 17, 2019
    @l890908 不应该
    理论上可以转换的
    mamahaha
        9
    mamahaha  
       Nov 17, 2019
    皮裤套棉裤,必定有缘故
    heart4lor
        10
    heart4lor  
       Nov 17, 2019
    数据库、表、字段、连接编码都用 utf8mb4
    vjnjc
        11
    vjnjc  
       Nov 17, 2019
    你要 connection 使用 utf8mb4 才能正确读出 emoj,所以要把编码改成 utf8mb4,在这个基础上解决问题。

    我怀疑是你以前用了 utf8 写入了大部分数据,使得他没法用 utf8mb4 的方式读出来,那么你把所有数据洗一下吧(只是一个猜测
    l890908
        12
    l890908  
    OP
       Nov 17, 2019
    @vjnjc 是 写入 utf8mb4, 然后用其他编码是读不出来的,得吧所有数据洗一遍,还不能重新建表插入
    qsbaq
        13
    qsbaq  
       Nov 18, 2019
    utf8mb4 正解
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5086 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 05:39 · PVG 13:39 · LAX 22:39 · JFK 01:39
    ♥ Do have faith in what you're doing.