zoukankan      html  css  js  c++  java
  • 解决Java连接MySQL存储过程返回参数值为乱码问题

    先说MySQL的字符集问题。Windows下可通过修改my.ini内的

    [mysql]  

     default-character-set=utf8    //客户端的默认字符集

    在MySQL客户端工具中输入SHOW VARIABLES LIKE 'character%'; 显示如下

    这样执行读取信息返回中文为乱码,解决办法是,在连接数据库之后,读取数据之前,先执行一项查询 SET NAMES 'utf8'; 即可显示正常。

    最简单的完美修改方法,修改mysql的my.cnf文件中的字符集键值(注意配置的字段细节): 

    1、在[client]字段里加入default-character-set=utf8,如下: 

    [client] 
    port = 3306 
    socket = /var/lib/mysql/mysql.sock 
    default-character-set=utf8 

    2、在[mysqld]字段里加入character-set-server=utf8,如下: 

    [mysqld] 
    port = 3306 
    socket = /var/lib/mysql/mysql.sock 
    character-set-server=utf8 

    3、在[mysql]字段里加入default-character-set=utf8,如下: 

    [mysql] 
    no-auto-rehash 
    default-character-set=utf8 

    修改完成后,service mysql restart重启mysql服务就生效。注意:[mysqld]字段与[mysql]字段是有区别的。这点在网上没人反馈过。 

    使用SHOW VARIABLES LIKE ‘character%’;查看,发现数据库编码全已改成utf8。 

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


    4、如果上面的都修改了还乱码,那剩下问题就一定在connection连接层上。解决方法是在发送查询前执行一下下面这句(直接写在SQL文件的最前面): 
    SET NAMES ‘utf8′; 

    它相当于下面的三句指令: 

    SET character_set_client = utf8; 
    SET character_set_results = utf8; 
    SET character_set_connection = utf8; 


    网上很多其他方法不能彻底解决这个问题,这个可以完美解决! 

  • 相关阅读:
    In Java, how do I read/convert an InputStream to a String? Stack Overflow
    IFrame自动更改大小
    [置顶] 获取服务器上格式为JSON和XML两种格式的信息的小程序
    Qt VS MFC
    [技术分享]使用 UAG 发布 RemoteAPP
    linux2.6.32在mini2440开发板上移植(11)之配置USB外设
    MFC控件(2):Text_Edit_Control
    CentOS 6.4 安装 Oracle 10g2 备记
    sql lite 二个数据库之间的表进行复制
    变量和函数的定义和声明
  • 原文地址:https://www.cnblogs.com/Warmsunshine/p/4615917.html
Copyright © 2011-2022 走看看