zoukankan      html  css  js  c++  java
  • 转载-mysql中文编码问题

    具体原理见:MySQL:windows中困扰着我们的中文乱码问题


    分割线:


    我的电脑win7 64位,这个问题可能是所有win系统出现的问题

    我出现的问题:

    是正确的

    出现了中文的张三,则错误,编码错误

    我尝试的策略:


    1设置客户端地连接编码格式. (命令: set names 'gbk')

    2修改数据库配置文件编码:

        mysql安装目录下面的my.ini文件 : default-character-set=gbk

                                                         character-set-server=gbk

            data/performance_schema目录下的: db.opt文件:   default-character-set=gbk  

                                                                                         default-ollation=gbk_chinese_ci

       修改完成之后重启MYSQL服务器. 但又出现了 ???? .


    3. 方法二操作失败, 便认为是数据库本身字符编码设置的问题:

    使用命令查看数据库的字符编码: mysql> show variables like 'char%';

    20150414012220228


    将MYSQL数据库同一设置成: gbk格式, 命令如下:

    MYSQL>set character_set_client = 'gbk' ;

    MYSQL>set character_set_connection = 'gbk' ;

    MYSQL>set character_set_results= 'gbk' ;

    MYSQL>set character_set_server= 'gbk' ;

    MYSQL>set character_set_database= 'gbk' ;

    完成之后,执行mysql> show variables like 'char%';


      然后修改对应的数据表的字符编码:  alter table xs modify name varchar(30) character set gbk;

    完成以上步骤之后.终于OK啦.


    总结以上步骤:

    1.设置客户端地连接编码格式. (命令: set names 'gbk')

    2. 修改数据库的配置文件

    3. 使用命令统一一下数据库的字符编码.


    原作者参考文章: http://archive.cnblogs.com/a/1643471/

    http://blog.sina.com.cn/s/blog_4d83777b0100fdsv.html

    转载自:http://blog.csdn.net/wqhjfree/article/details/6453650

       

    4.大虾前辈的最终解惑

    原来在linux下写的程序改到windows中来了,测试程序的时候要向mysql数据库插入测试数据,刚开始用的是mysql gui tools,没想到在sql语句框里无法输入中文(输入极为乱码),很是悲剧,于是改用mysql命令行输入中文,没想到在插入的时候出现错误“RROR 1366 (HY000): Incorrect string value: ……”,网上查了一下说是编码的问题,开始我就很怀疑,我的mysql安装的时候选择的是utf8编码格式,对中文是没有问题的啊!它的解决方法是所有的设置成gbk,我觉得这个方法不好,因为gdk是中文编码,对其他亚洲语系的编码不一定能支持,如果要想国际化最好是utf8编码,更重要的是原来的程序在linux下面设置了大量的utf8编码,如果改数据库编码格式为gbk将会导致程序不稳定和很多潜在的bug。可是我怎么修改都不好用。弄了一整天,相当郁闷。最后的时候想起来了windows平台默认的编码格式是gbk,所以在用命令行执行插入语句的时候命令行中的中文是gbk编码,与mysql
    中的utf不同,导致出现这个错误,又因为mysql gui tools对中文支持不好,于是换了一个mysql图形工具,改用navicat,在这个软件中执行sql插入语句没有任何问题,成功插入。原来的数据库设置没有问题,是windows操作系统的默认编码格式和数据库冲突,而linux的默认编码格式为UTF-8,所以不会有这样的问题。特在这里记录下来,方便遇到同样问题的可以不像我这么费力。
         总结遇到问题要多想一些,不要盲目相信网上的答案。另外navicat真的很好用(支持windows、linux和mac OS),以后就用它做mysql图形工具了。

    转自:http://lwjlaser.iteye.com/blog/1013071


    最后转自红黑联盟的linux的方法,在win中我们把utf8替换成gbk

    转自红黑联盟:http://www.2cto.com/database/201211/171602.html




    转载自:https://blog.csdn.net/geilivablemental/article/details/45034229 ,作者:geilivablemental
  • 相关阅读:
    15. DML, DDL, LOGON 触发器
    5. 跟踪标记 (Trace Flag) 834, 845 对内存页行为的影响
    4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志
    14. 类似正则表达式的字符处理问题
    01. SELECT显示和PRINT打印超长的字符
    3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
    2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
    1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
    0. 跟踪标记 (Trace Flag) 简介
    SpringBoot + Redis + Shiro 实现权限管理(转)
  • 原文地址:https://www.cnblogs.com/justaman/p/10706005.html
Copyright © 2011-2022 走看看