黑马程序员技术交流社区

标题: 怎么修改sqlserver2005存储的数据的编码方式 [打印本页]

作者: 佟亚鹏    时间: 2012-10-25 09:02
标题: 怎么修改sqlserver2005存储的数据的编码方式
本帖最后由 佟亚鹏 于 2012-11-5 11:04 编辑

网页使用的是编码是utf-8,显示从sql server 2005中 取出的中文数据是乱码,把网页编码方式改为gb2312,这时中数据库取出的正常了,其他的内容又是乱码了,我想了两个解决方法,第一、修改sqlserver2005存储的数据的编码方式为utf-8,第二、取出数据后用编程语言给转码,我想用第一种方法,有知道怎么样修改的童鞋吗
作者: duanhuilin    时间: 2012-10-25 09:06
码有特殊性,仅仅在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

3. 配置database.yml: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.在environment.rb添加下面代码
require 'win32ole'
WIN32OLE.codepage = WIN32OLE::CP_UTF8


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

作者: dqzg12300    时间: 2012-10-25 09:07
Encoding.UTF8.GetString()这个方法在读取SQL数据的时候不能改编码么?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2