V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
Joban
V2EX  ›  MySQL

mysql 字符集都为 utf8,但是程序中查询到的数据中文乱码

  •  
  •   Joban · 2016-12-20 22:46:29 +08:00 · 4863 次点击
    这是一个创建于 2900 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mysql> show variables like '%chara%';
    +--------------------------+----------------------------+
    | Variable_name | Value |
    +--------------------------+----------------------------+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |
    | character_set_database | utf8 |
    | character_set_filesystem | binary | | character_set_results | utf8 |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
    8 rows in set (0.00 sec)

    mysql> show global variables like '%chara%';
    +--------------------------+----------------------------+
    | Variable_name | Value |
    +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)

    在服务器里面的命令行查询数据没有问题,但是在程序中查询的数据中文乱码。 麻烦 v 友帮忙看看。

    14 条回复    2016-12-26 19:49:15 +08:00
    pubby
        1
    pubby  
       2016-12-20 23:03:01 +08:00   ❤️ 1
    set names utf8;
    pubby
        2
    pubby  
       2016-12-20 23:03:28 +08:00
    新版建议直接用 utf8mb4
    adrianzhang
        3
    adrianzhang  
       2016-12-20 23:17:21 +08:00
    my.cnf 里要设置 utf8
    Miy4mori
        4
    Miy4mori  
       2016-12-20 23:19:39 +08:00 via Android
    检查下 connection url ?
    tigerstudent
        5
    tigerstudent  
       2016-12-20 23:45:21 +08:00 via Android
    熟悉的坑。。
    chiv2
        6
    chiv2  
       2016-12-21 01:49:33 +08:00
    一个里面装满了新手程序员的坑。
    pouta
        7
    pouta  
       2016-12-21 08:16:00 +08:00 via Android
    如果有中文 除了设置编码 查询或写入数据之前都要执行这条 sql 语句 set names utf8(一个新手程序员,有错请指正,谢谢)
    sundyandy
        8
    sundyandy  
       2016-12-21 09:43:57 +08:00
    确保你后端语言(假设是 php )连接时用的编码也是 utf8 。。
    Joban
        9
    Joban  
    OP
       2016-12-21 12:25:12 +08:00
    这个设置了
    Joban
        10
    Joban  
    OP
       2016-12-21 12:25:50 +08:00
    @adrianzhang 在 my.cnf 也设置了
    Joban
        11
    Joban  
    OP
       2016-12-21 12:27:48 +08:00
    <property name="url" value="jdbc:mysql://...:3306/jewelty?useUnicode=true&amp;characterEncoding=utf-8" />

    url 我是这样写的,有没有问题?
    Joban
        12
    Joban  
    OP
       2016-12-24 14:10:04 +08:00
    已解决。
    修改了列的的字符集
    ALTER TABLE table MODIFY column TEXT [...] CHARACTER SET utf8;
    aiyo218
        13
    aiyo218  
       2016-12-26 19:38:16 +08:00
    建表没设字符集?
    Joban
        14
    Joban  
    OP
       2016-12-26 19:49:15 +08:00
    @aiyo218 设置了噢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1180 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:53 · PVG 06:53 · LAX 14:53 · JFK 17:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.