zoukankan      html  css  js  c++  java
  • 如何将character_set_database latin1 改为 gbk(转)

    第一篇文章:

    原地址:

    Linux服务器下文件名为 my.cnf

    Windows 下文件名为 my.ini

    问题:通过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:phpStudyMySQLsharecharsets |
    +--------------------------+-----------------------------------+
    
    
    ③修改默认编码有两种方法 
    
    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:phpStudyMySQLsharecharsets |
    +--------------------------+-----------------------------------+
    
    ④万一还是不行。。。以为我也是一路试着来的,所以有些步骤可能我认为没起作用但却可能起了作用的有
    
    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这种命令来修改各个变量,但当时我不知道这个,也没试过。如果你上面的方法不行可以试试这个。

    第二篇文章:

    原地址:http://www.cr173.com/html/50452_1.html

    mysql的默认编码是拉丁,我每次JSP制作网页用insert语句插入数据库时汉字都会显示成问号,安装mysql后,启动服务并登陆,使用show variables命令可查看mysql数据库的默认编码:

    由上图可见database和server的字符集使用了latin1编码方式,不支持中文,即存储中文时会出现乱码。以下是命令行修改为utf-8编码的过程,以支持中文。

    Linux下修改:

    (1)关闭mysql服务

    [plain] view plaincopy

    service mysql stop  

    (2)修改 /etc/mysql/my.cnf  (默认的安装路径)

    [plain] view plaincopy

    vim /etc/mysql/my.cnf  

    打开my.cnf后,在文件内的[mysqld]下增加如下两行设置:

    [plain] view plaincopy

    character_set_server=utf8  

    init_connect='SET NAMES utf8'  (亲测,不加也没关系)

    (具体如截图所示):

    保存退出。

    (3) 重新启动mysql服务

    [plain] view plaincopy

    service mysql start  

    至此,完成修改默认编码,登陆mysql后重新使用show variable like '%character%'获得的输出效果如下:

    具体操作和输出情况如下:

    Windows下修改:

    解决方法:打开mysql安装目录:C:Program FilesMySQLMysql server 5.5
    打开文件my.ini配置文件,找到  default-character-set=latin1   并改为:
    default-character-set=gbk,找到   character-set-server=latin1  并改为:
    character-set-server=gbk,修改完之后保存。
    最后:我的电脑右击 “管理”进入之后选择“服务和应用程序”下的“服务”
    找到“mysql”之后右击选择“重新启动”。
    把jsp页面中的<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>改为<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>即可

    Mysql 字符解决:
    1,安装选择utf8 编码
    2,使用SHOW VARIABLES LIKE ‘character_set_%’;
    显示:
    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
    修改my.ini中[mysqld]下的default-character-set为utf8
    显示
    | character_set_client     | latin1
    | character_set_connection | latin1
    | character_set_database   | utf8
    | character_set_filesystem | binary
    | character_set_results    | latin1
    | character_set_server     | utf8
    | character_set_system     | utf8
    说明此项设置The default character set that will be used when a new schema or table is
    # created and no character set is defined(数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。)
    但是服务端与客户端的链接字符集仍然没有修改
    修改[mysql]default-character-set=utf8
    显示:
    | 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
    客户端和服务端都统一了 ok

     2: 修改你的数据库的字符编码:进入Mysql数据库,通过命令修改你的数据库字符编码: ALTER DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci  (修改后需要重启Mysql数据库)
    3: 如果你的表以及表里的字段使用了不正确的字符编码,同样需要修正过来:命令:
     修改表的编码: ALTER TABLE `tableName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
     修改字段的编码: ALTER TABLE `tableName` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL 

    主要介绍MySQL编码为utf8设置方法:

    一、编辑MySql的配置文件

    vim /etc/my.cnf

    在 [mysqld] 标签下加上三行

    default-character-set = utf8

    character_set_server = utf8

    在 [mysql] 标签下加上一行

    default-character-set = utf8

    在 [mysql.server]标签下加上一行

    default-character-set = utf8

    在 [mysqld_safe]标签下加上一行

    default-character-set = utf8

    在 [client]标签下加上一行

    default-character-set = utf8

    二、重新启动MySql服务即可

    三、查看mysql字符集 (默认情况下,mysql的字符集是latin1)

    1. 启动mysql后,以root登录mysql

    2. 输入命令

    show variables like 'character%';

  • 相关阅读:
    为什么已经设置了更多的远程连接授权,同一账户登陆的时候还会被踢掉?
    如何添加并设置远程桌面(RD)授权服务器
    如何在Windows Server 2008 上添加RD (远程桌面)会话主机配置的远程桌面授权服务器
    DB2 Enterprise Server Edition(DB2 ESE)9.1在Windows Server 2008 下出现无法新建数据库的情况,及解决办法
    在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容
    相机模型2
    Ubuntu下实用的录屏软件--Kazam
    2d lidar 与相机
    linux 串口查询设置修改
    Eigen中 Isometry3d、matrix的Identity()
  • 原文地址:https://www.cnblogs.com/rainy-shurun/p/5783315.html
Copyright © 2011-2022 走看看