V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whirly
V2EX  ›  程序员

v2exer 老哥进来帮我看下 MySQL 编码问题

  •  
  •   whirly · 2019-07-12 10:58:44 +08:00 · 2045 次点击
    这是一个创建于 1969 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Windows7,MySQL 5.7.26 ,一直非英文乱码

    建表 sql:

    my.ini 设置:

    heidisql:

    非英文乱码:

    导入的时候设置了 latin1,一直有非英文乱码问题,尝试了 Latin1 和 utf8 多种组合设置,问题依旧

    老哥们快来帮忙看看该怎么办? ··)

    9 条回复    2019-07-12 13:36:47 +08:00
    Aresxue
        1
    Aresxue  
       2019-07-12 11:06:00 +08:00
    character_set_server 和 character_set_database 改成 utf8mb4
    maierhuang
        2
    maierhuang  
       2019-07-12 11:06:26 +08:00
    非英文乱码 指的是中文乱码? latin1 这种单字节字符集是无法存储中文的
    Vegetable
        3
    Vegetable  
       2019-07-12 11:09:41 +08:00
    已经建立的数据库,好像没办法切换编码了吧(凭印象说),所以你再怎么 alter 都应该不行,数据已经丢了.我都是删库重新来,建库 utf8mb4,导入就好了.
    whirly
        4
    whirly  
    OP
       2019-07-12 11:30:55 +08:00
    @Aresxue 试过了,没啥效果

    @Vegetable 只能先这样试一下了
    leeyuzhe
        5
    leeyuzhe  
       2019-07-12 11:34:24 +08:00 via Android
    二楼正解。。
    HuasLeung
        6
    HuasLeung  
       2019-07-12 11:36:45 +08:00
    试试统一设为 utf8_general_ci
    maierhuang
        7
    maierhuang  
       2019-07-12 11:38:13 +08:00
    你确定一下你导出时是什么编码 目测肯定不是 latin1 如果原来是 uft8mb4 你导入设置成 latin1 早就被截断了 你之后怎么设置都是没用的
    maierhuang
        8
    maierhuang  
       2019-07-12 11:42:57 +08:00
    话说 mysql 的编码令人眼花缭乱 默认设置是 latin1 之后搞了个 utf8 发现这货不是正宗的 4 字节编码 是个 3 字节的编码 后来发现无法显示所有的文字 加入个 utfmb4 这个 4 的意思就是 4 字节了 这才是正经的 uft8
    Aresxue
        9
    Aresxue  
       2019-07-12 13:36:47 +08:00   ❤️ 1
    ALTER DATABASE 数据库 CHARACTER SET utf8mb4;
    ALTER table 表名 CHARACTER SET utf8mb4;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2702 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:03 · PVG 17:03 · LAX 01:03 · JFK 04:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.