首页数据库修改数据库编码,如何更改MySQL数据库编码为UTF-8或者GB2312

修改数据库编码,如何更改MySQL数据库编码为UTF-8或者GB2312

编程之家2023-10-17112次浏览

大家好,修改数据库编码相信很多的网友都不是很明白,包括如何更改MySQL数据库编码为UTF-8或者GB2312也是一样,不过没有关系,接下来就来为大家分享关于修改数据库编码和如何更改MySQL数据库编码为UTF-8或者GB2312的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

修改数据库编码,如何更改MySQL数据库编码为UTF-8或者GB2312

如何修改mssql数据库编码

sql server 2000的unicode编码有特殊性,仅仅在rails中使用utf8编码,和把全部rails项目文件格式改成utf8之外,还是不够的。仅仅这样做,只是部分中文字符能够正确处理,而且存入sql server2000中的中文数据,也完全是乱码。正确的配置方法应该如下。

1. ms sql server2000中数据字段全部要选择成n打头的类型,比如ntext,nvarchar等。

2.安装ADO Driver

安装one-click installer来安装ruby的话就已经安装了所有连接SQL Server使用的需求包.但是,并没有安装ADO Driver.

这样来安装它:

在Ruby目录下找到这个目录:\ruby\lib\ruby\site_ruby\1.8\DBD.例如:我的Ruby安装在D:\ruby中,所以是这个目录D:\ruby\lib\ruby\site_ruby\1.8\DBD在该目录中创建一个ADO文件夹.下载Ruby-DBI,将lib/dbd_ado/ADO.rb文件拷贝到X:/ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb

修改数据库编码,如何更改MySQL数据库编码为UTF-8或者GB2312

3.配置database.yml:Java代码

development:

adapter: sqlserver

database: database_name

host: server_name

username: user_name

修改数据库编码,如何更改MySQL数据库编码为UTF-8或者GB2312

password: your_pw_here

development:

adapter: sqlserver

database: database_name

host: server_name

username: user_name

password: your_pw_here

4.在environment.rb添加下面代码

require'win32ole'

WIN32OLE.codepage= WIN32OLE::CP_UTF8

在这里稍微解释下第四部分的设置。sql server 2000中使用的unicode并非是utf8,ado的默认链接编码都是当前系统设置的code pages相关的。

一般的windows设置都是非unicode的,比如简体中文windows系统下一般都是gb2312,在rails中database.yml设置encoding: utf8,对于sql server没有任何用处。

为了迫使sql server接受utf8数据,必须修改ado链接的code pages值为utf8,才能让ado部分代码在接受rails传入的utf8数据之后,不做任何额外的处理.否则的话,ado部分代码会根据当前系统的默认code pages值来处理这里字符数据。

于是在中文windows系统上,从utf8的rails项目中传入的数据,会被当作gb2312编码的数据来传递到sql server2000中,于是sql server2000中存入的数据会成为乱码,也有部分数据在处理过程中出错,导致sql语句执行出错。比如常见的中文字符右边的单引号会不见的情况。

不设置 WIN32OLE.codepage= WIN32OLE::CP_UTF8,你的整个系统编码配置是这样的

rails(utf8)<-->ado(根据当前系统cp来取得编码,或是gb2312或是其他)<-->sql server 2000(unicode)

整个系统编码不一至。

WIN32OLE.codepage= WIN32OLE::CP_UTF8这句代码就是为了更改cp值.整个系统编码配置是这样的

rails(utf8)<-->ado(utf8)<-->sql server 2000(unicode)

整个系统编码一至,整个系统中不会再出现任何乱码。

如何改变mysql数据库的编码方式

1.查看MySQL数据库的默认编码

有如下两种方式,

(1)使用status命令

mysql> status;

图1 status命令

(2)使用show variables命令

mysql> show variables like'char%';

图2 show variables命令

如果要查看某个数据库的编码,在运行上面的命令前,应先执行use db_name;命令切换数据库(db_name为要查看的数据库名)。

2.改变MySQL数据库的默认编码

安装MySQL数据库时的默认编码是latin1,实际使用时可能要使用其他编码。下文描述如何将默认编码改为utf8:

首先修改MySQL的配置文件/etc/mysql/my.cnf:

在[client]下追加:

default-character-set=utf8

在[mysqld]下追加:

character-set-server=utf8

在[mysql]下追加:

default-character-set=utf8

修改完毕后,使用如下命令之一重启mysql服务:

service mysql restart

/etc/init.d/mysql restart

改变后,之前手工创建的数据库如未显式指定编码,则其编码仍是默认的latin1,可使用如下命令更改编码:

mysql> alter database db_name CHARACTER SET utf8;

参考资料:

[1] http://www.2cto.com/os/201404/292378.html

如何更改MySQL数据库编码为UTF-8或者GB2312

mysql创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

网页数据一般采用UTF8编码,而数据库默认为latin。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。

我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来

我们可以通过命令查看数据库当前编码:

mysql> SHOW VARIABLES LIKE'character%';

发现很多对应的都是latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。

第一阶段:

mysql设置编码命令

[sql]view plaincopy

SETcharacter_set_client=utf8;

SETcharacter_set_connection=utf8;

SETcharacter_set_database=utf8;

SETcharacter_set_results=utf8;

SETcharacter_set_server=utf8;

然后mysql> SHOW VARIABLES LIKE'character%';你可以看到全变为utf8。

但是,这只是一种假象

此种方式只在当前状态下有效,当重启数据库服务后失效。

所以如果想要不出现乱码只有修改my.ini文件,

从my.ini下手(标签下没有的添加,有的修改)

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。

然后重启mysql,执行

mysql> SHOW VARIABLES LIKE'character%';

确保所有的Value项都是utf8即可。

但是可恶的事情又来了,

|character_set_client| utf8|

| character_set_connection| utf8|

| character_set_database| utf8|

| character_set_filesystem| binary|

| character_set_results| utf8|

| character_set_server| latin1|

| character_set_system| utf8

注意该配置| character_set_server| latin1无法设置成UTF8交互时候仍然会出现乱码。

第二阶段:找到下面这东东

X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe

重新启动设置,将默认编码设置为utf8.这样就能达到我们所要的效果了。

mysql> SHOW VARIABLES LIKE'character%';

+--------------------------+---------------------------------------------------------+

| 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| C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\|

+--------------------------+---------------------------------------------------------+

8 rows in set

关于修改数据库编码到此分享完毕,希望能帮助到您。

口袋妖怪数据库,口袋要妖怪金手指官网域名(属于官方网站的域名有哪些)