zoukankan      html  css  js  c++  java
  • Windows本地解决MySql插入中文乱码问题

     JSP页面输入的数据也要转化UTF8的编码字符串在传人数据库

    一劳用逸

    在 MySQL 的安装目录下有一个 my.ini 配置文件,通过修改这个配置文件可以一劳永逸的解决乱码问题。在这个配置文件中 [mysql] 与客户端配置相关,[mysqld] 与服务器配置相关。默认配置如下:

    my.ini(Ctrl+F 查找),并根据需要配置相关项,之后重启MySQL 即可。

    关键注意事项:

    1、MySQL 的配置文件是分模块的,如[mysqld]、[client]模块等,里面的配置项必须是要该模块有的项,否则MySQL将无法启动。

    [mysql]     

     default-character-set= utf8

     

    2、修改character_set_server 的值,需要将character-set-server=utf8 配置在[mysqld]模块!(注意模块名与键名!utf8写成utf-8也会出错!),之后重启,查看编码,发现character-ser-server已经变成设置的utf8.

    collation-server=utf8_general_ci

    3

       [client]


     default-character-set = utf8

    登录 mysql -u root -p

    密码:Ltb6w@2018

     查看默认编码格式:mysql> show variables like "%char%"

     设置编码格式:

    SET character_set_client='utf8'

    SET character_set_connection='utf8';
     
    SET character_set_server='utf8'

    查看数据库dudu的编码格式:

    mysql> show create database dudu;

    设置数据库dudu的编码格式:

    ALTER DATABASE `dudu` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    查看数据表testTable的编码格式:

    mysql> show create table testTable; 

    设置数据表foot_ball的编码格式:

    ALTER TABLE `foot_ball` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    创建数据库、数据表时指定utf8编码:

    //建数据库

    CREATE DATABASE `dudu` 
    CHARACTER SET 'utf8' 
    COLLATE 'utf8_general_ci';
     
    //建数据表

    CREATE TABLE `foot_ball` (
    `ID` varchar(40) NOT NULL default '',
    `TREAM` varchar(40) NOT NULL default '',
    `URL` varchar(40) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    Incorrect string value: 'xE6x9BxB9xE5x86xAC...' for column 'realname' at row 1

    该情况一般是由数据库设计时的编码错误导致的。

    show variables like 'character%' ;  查看数据库编码,为latin1。

        

    如果项目正在测试当中,数据不重要的话,一劳永逸的解决办法是,使用 alter database 数据库名字 character set utf8; 更改数据库的编码格式,再重新建表。

    注意:在 Hibernate中,指定hibernate.hbm2ddl.auto=create,重新部署项目,hibernate会自动重新建表。

         

    如果项目中的数据是重要数据的话,使用 alter table 表名字 convert to character set utf8; 转换需要插入汉字的数据表编码为utf8即可(此例中的数据表是address):

        

    为免操作不当,事先最好先备份好数据。

     

    备份是个好习惯,是吧  *~*

      

    memento..

  • 相关阅读:
    写在开篇——过往总结
    线程池原理实现
    MD5加密工具类
    跨域及jsonp
    四种xml的解析方式
    浅析正则表达式—(原理篇)
    用JavaScript添加选择按钮的背景颜色和juqery添加选择按钮的背景色
    怎么用JavaScript实现tab切换
    vue.js2.0:如何搭建开发环境及构建项目
    vscode如何用浏览器预览运行html文件
  • 原文地址:https://www.cnblogs.com/ltb6w/p/10199677.html
Copyright © 2011-2022 走看看