利用sql语句进行修改,举例说明:
1、ALTER
TABLE
`test`
DEFAULT
CHARACTER
SET
utf8;该命令用于将表test的编码方式改为utf8;
2、ALTER
TABLE
`test`
CHANGE
`name`
`name`
VARCHAR(36)
CHARACTER
SET
utf8
NOT
NULL;
该命令用于将表test中name字段的编码方式改为utf8
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\18\DBD 例如:我的Ruby安装在D:\ruby中,所以是这个目录D:\ruby\lib\ruby\site_ruby\18\DBD 在该目录中创建一个ADO文件夹 下载Ruby-DBI,将lib/dbd_ado/ADOrb文件拷贝到X:/ruby/lib/ruby/site_ruby/18/DBD/ADO/ADOrb
3 配置databaseyml:Java代码
development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here
development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here
4在environmentrb添加下面代码
require 'win32ole'
WIN32OLEcodepage = WIN32OLE::CP_UTF8
在这里稍微解释下第四部分的设置。sql server 2000中使用的unicode 并非是utf8,ado的默认链接编码都是当前系统设置的code pages相关的。
一般的windows设置都是非unicode的,比如简体中文windows系统下一般都是gb2312, 在rails中databaseyml设置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 语句执行出错。比如常见的中文字符右边的单引号会不见的情况。
不设置 WIN32OLEcodepage = WIN32OLE::CP_UTF8,你的整个系统编码配置是这样的
rails(utf8)<-->ado(根据当前系统cp来取得编码,或是gb2312或是其他)<-->sql server 2000 (unicode)
整个系统编码不一至
WIN32OLEcodepage = WIN32OLE::CP_UTF8 这句代码就是为了更改cp值整个系统编码配置是这样的
rails(utf8)<-->ado(utf8)<-->sql server 2000 (unicode)
整个系统编码一至,整个系统中不会再出现任何乱码
你要是用一个可视化 *** 作的界面就简单了,就比如navicat
for
mysql右键数据库-->数据库属性--->字符集--->utf-8
unicode
/排序规则--->utf8-gernal-ci就行了
1直接打开SQLSERVER2008的相关窗口,会看到字符集为ISO-8859-5,如下图。
2如果下一步是好的,继续并点击首选项跳转到窗口。
3这时,一个新的对话框d出。您需要选择编码为utf-8并确认更改。
4通过这种方式,当找到图的结果时,就可以达到目的。
在Unix下,可以编辑mycnf文件进行编码修改,Windows下可以直接用Mysql Server Instance Config Wizard 进行设置。
在linux下修改3个 mycnf 中 /etc/mysql/mycnf 文件
找到[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
再找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
修改好后,重新启动mysql 即可,查询一下show variables like 'character%';
此方法用于标准mysql版本同样有效,对于/etc/mycnf文件,需要从mysql/support-files的文件夹复制 my-largecnf 到 /etc/mycnf 。
(1)关闭mysql服务
[plain] view plaincopy
service mysql stop
(2)修改 /etc/mysql/mycnf (默认的安装路径)
[plain] view plaincopy
vim /etc/mysql/mycnf
打开mycnf后,在文件内的[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%'获得的输出效果如下:
新建一个模板,比如
template_utf8
,设置好utf-8以及plpgsql之类的lang还有插件,从这个数据库新建就全是uft-8了。
如果是更改的话,需要先把数据库导出为sql,
再新建,而后导入。导入前,修改sql里的create
语句,指定字符集。有汉字的话,另存为utf-8的编码,再导入。
1sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看排序规则
应该字符集关
2更改服务器排序规则
更改 SQL Server 2005 实例默认排序规则 *** 作能比较复杂包括步骤:
确保具重新创建用户数据库及些数据库所象所需全部信息或脚本
使用工具(例容量复制)导所数据
删除所用户数据库
重新 setup 命令 SQLCOLLATION 属性指定新排序规则 master 数据库例:
复制代码
start /wait setupexe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
关重新 master 数据库详细信息请参阅何重新 SQL Server 2005 Master 数据库
以上就是关于如何修改MySQL数据库中表和表中字段的编码方式全部的内容,包括:如何修改MySQL数据库中表和表中字段的编码方式、怎么修改sql server 2000的编码方式、怎么修改mysql数据库字符集编码为utf-8等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)