• mysql保存中文乱码问题


    先查下数据库的编码

    mysql -uroot -p
     >show variables like 'character%';
    +--------------------------+----------------------------+
    | Variable_name | Value |
    +--------------------------+----------------------------+
    | character_set_client | latin1 |
    | character_set_connection | latin1 |
    | character_set_database | latin1 |
    | character_set_filesystem | binary |
    | character_set_results | latin1 |
    | character_set_server | latin1 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;
    其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码;
    character_set_results结果集的编码;
    character_set_server数据库服务器的编码;
    只要保证以上四个采用的编码方式一样,就不会出现乱码问题。
    另一个查看数据库编码的命令:
    >show variables like ‘collation%’;

    停止mysql服务,在ubuntu下使用

    sudo service mysql stop

    或者

    sudo stop mysql

    ,其他系统下可以用这个

    /etc/init.d/mysql stop

    修改 /etc/mysql/my.cnf 文件,在[client]下面增加default-character-set=utf8,在[mysqld]下面增加character-set-server = utf8,在[mysql]下面增加default-character-set=utf8,保存关闭文件,重启mysql服务,sudo service mysql start或者sudo start mysql或者

    /etc/init.d/mysql start。

    进入mysql,

    mysql -uroot -p

    运行这一句,show variables like 'character%';

    若它显示

    +--------------------------+----------------------------+
    | 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/ |
    +--------------------------+----------------------------+

    修改成功。

    然后再创建数据库,在mysql驱动或者orm在连接时都设置charset=utf8。

    
    
  • 相关阅读:
    ajax实现异步请求的过程
    GET和POST的区别,何时使用POST?
    函数有几种调用方式?
    substring、slice、substr的区别
    Spring 调用 Stored Procedure 并获取返回值
    Oracle 中, 使用 Instr 函数 替换 OR
    Oracle Materialized View refresh
    Oracle中Union 和 Union All
    toString() 和 强制类型转换 (String)
    2013年这一年
  • 原文地址:https://www.cnblogs.com/descusr/p/2935573.html
Copyright © 2020-2023  润新知