• 如何将character_set_database latin1 改为 gbk


    问题:通过sql语言向数据库中添加中文的数据的时候,查询是显示的是乱码。

    原因:当初安装数据库是默认的编码是latin1编码(Latin1是ISO-8859-1的别名,有些环境下写作Latin-1

    解决: 我是讲latin1编码改为gbk   ,,,如过你不是,我相信也差不多按照这写步骤。

    ①首先进入到mysql暗转目录下,记事本打开my.ini文件将

    default-character-set=latin1    改为    default-character-set=gbk

    default-character-set=latin1     改为   default-character-set=gbk    注意有两行

    ②但是修改了这两行还不够,因为你的数据库编码依然还是latin1,你可以doc进入mysql命令下,运行show variables like 'character%'; 显示的内容是:

    +--------------------------+-----------------------------------+
    | Variable_name            | Value                             |
    +--------------------------+-----------------------------------+
    | character_set_client     | gbk                               |
    | character_set_connection | gbk                               |
    | character_set_database   | latin1                            |         //此处显示数据库依然是latin1编码
    | character_set_filesystem | binary                            |
    | character_set_results    | gbk                               |
    | character_set_server     | gbk                               |
    | character_set_system     | utf8                              |            //此处是系统默认的
    | character_sets_dir       | E:\phpStudy\MySQL\share\charsets\ |
    +--------------------------+-----------------------------------+


    ③修改默认编码有两种方法 

    1》在创建数据库时指定字符集create database yourDB CHARACTER SET gbk;

     如果是MYSQL数据库编码不正确: 可以在MYSQL执行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
     修改MYSQL表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
     修改字段的编码:ALTER TABLE `test` CHANGE `dd`  VARCHAR( 45 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL

    2》我是用的这种方法,因为我电脑上配置了php环境所以可以用这种方法:即运行一个php文件通过那个修改数据编码。你通过网页浏览该文件时填写一些数据就能修改了     文件下载地址http://dl.vmall.com/c08ge26aop                   文件直接解压到放php文件目录通过浏览器打开就行

    通过上面这些步骤差不多就能显示出下面的内容了

    在运行命令show variables like 'character%';   


    +--------------------------+-----------------------------------+
    | Variable_name            | Value                             |
    +--------------------------+-----------------------------------+
    | character_set_client     | gbk                               |
    | character_set_connection | gbk                               |
    | character_set_database   | gbk                               |
    | character_set_filesystem | binary                            |
    | character_set_results    | gbk                               |
    | character_set_server     | gbk                               |
    | character_set_system     | utf8                              |
    | character_sets_dir       | E:\phpStudy\MySQL\share\charsets\ |
    +--------------------------+-----------------------------------+

    ④万一还是不行。。。以为我也是一路试着来的,所以有些步骤可能我认为没起作用但却可能起了作用的有

    1》mysql> set names gbk;

    Query OK, 0 rows affected (0.00 sec)
    它相当于下面的三句指令:
    SET character_set_client = gbk;
    SET character_set_results = gbk;
    SET character_set_connection = gbk;

    因此,这个方法也可以解决所有字符编码设置为gbk,而控制台显示中文乱码的问题。

    ⑤当然你也可以试试SET character_set_client = gbk;  即set这种命令来修改各个变量,但当时我不知道这个,也没试过。如果你上面的方法不行可以试试这个。
  • 相关阅读:
    跨域常见解决方案
    express-session的简单使用说明
    Spring Cloud中,如何解决Feign/Ribbon第一次请求失败的问题?
    继承父类的静态方法的加载顺序
    sql索引优化
    EXPLAIN 执行计划详解
    JVM总括二-垃圾回收:GC Roots、回收算法、回收器
    dubbo知识体系
    Spring bean的生命流程
    日志体系与异常处理
  • 原文地址:https://www.cnblogs.com/alamps/p/2791312.html
Copyright © 2020-2023  润新知