当前位置:首页 » 编程语言 » sql编码设置

sql编码设置

发布时间: 2022-05-29 00:20:47

① 请问怎么修改MS sql数据库的编码方式啊

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

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相关的。

一般的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)
整个系统编码一至,整个系统中不会再出现任何乱码.

注:以上转自:jack发表在javaeye网站上的文章,地址:http://www.javaeye.com/topic/53877

database.yml也可以用以下的配置试试(用下面这种的话第1条或许不用,没试过)

② 如何修改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

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相关的。

一般的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)
整个系统编码一至,整个系统中不会再出现任何乱码。

③ 怎么用sql友规则的去创建编码

怎么用sql友规则的去创建编码
-- 创建数据库时,设置数据库的编码方式
-- CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8
-- COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)
drop database if EXISTS dbtest;
create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;

④ sql修改表编码的语句

1、修改my.ini文件来修改编码:加上default-character-set=字符集(utf8.gbk.gb2312等)
2、命令行修改:alterdatabaseda_namedefaultcharacterset"charset';或setnames'charset';或;
参考:http://www.2cto.com/database/201406/307694.html

⑤ mysql用sql语句创建表和数据库怎么设置字符编码'

方法如下:

  • 我们先建一个DEMO表,来做我们今天的实现,建表语句如下:

    CREATE TABLE

    DEMO

    (

    NAME VARCHAR(50) COMMENT '姓名',

    SEX CHAR(1) COMMENT '性别',

    PRIMARY KEY (NAME)

    )

    ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='例子表';

    并且select查询一下,如下图

⑥ 如何使用SQL语句创建名称为OnLineDB的数据库,默认字符集设置为utf-8

  • 步骤一:首先在Linux上安装mysql,本文不介绍mysql的安装过程

    #yum install mysql

    #yum install mysql-server

    #yum install mysql-devel

    在Cenots7操作系统上,安装mariadb(MariaDB数据库管理系统是MySQL的一个分支,centos7使用),安装命令:yum install mariadb-server mariadb

  • 步骤三:修改之后,重启mysqlf服务(systemctl restart mariadb),重启之后登陆mysql(mysql -umysql -p),使用语句show variable like '%character%;查询结果如下,字符编码已经变成utf-8了。

  • 如果查询结果显示不是UTF-8,就需要检查修改的是否正确,也可以使用sql命令就行修改

    set character_set_client = utf8;

    set character_set_server = utf8;

    set character_set_connection = utf8;

    set character_set_database = utf8;

    set character_set_results = utf8;

    set collation_connection = utf8_general_ci;

    set collation_database = utf8_general_ci;

    set collation_server = utf8_general_ci;

⑦ 在PL/SQL Developer中如何设置SQL窗口里的字符编码格式

在windows中创
建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED
CHINESE_CHINA.ZHS16GBK”,
然后重新启动
pl/sql
developer,这样检索出来的中文内容就不会是乱码了。如果想转换为UTF8字符集,可以赋予“NLS_LANG”为
“AMERICAN_AMERICA.UTF8”,然后重新启动
pl/sql
developer。其它字符集设置同上

⑧ sql编码为latin1,中文内容全部显示问号,怎么设置

第一种的代码,你可以参考一下:
以下的我找的其中一篇,备份后数据库是空的!
/**
* @param args
*/
public static void
main(String[] args) {
/*
* 备份和导入是一个互逆的过程。
*
备份:程序调用mysql的备份命令,读出控制台输入流信息,写入.sql文件;
*
导入:程序调用mysql的导入命令,把从.sql文件中读出的信息写入控制台的输出流
* 注意:此时定向符">"和"<"是不能用的
*/
backup();
load();
}

/**
*
备份检验一个sql文件是否可以做导入文件用的一个判断方法:把该sql文件分别用记事本和ultra
*
edit打开,如果看到的中文均正常没有乱码,则可以用来做导入的源文件(不管sql文件的编码格式如何,也不管db的编码格式如何)
*/
public static void backup() {
try {
Runtime rt =
Runtime.getRuntime();

// 调用 mysql 的 cmd:
Process child = rt
.exec("mysqlmp -u root --set-charset=utf8 bjse act_obj");//
设置导出编码为utf8。这里必须是utf8

//
把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行
InputStream in
= child.getInputStream();// 控制台的输出信息作为输入流

InputStreamReader xx =
new InputStreamReader(in, "utf8");// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码

String inStr;
StringBuffer sb = new StringBuffer("");
String
outStr;
// 组合控制台输出信息字符串
BufferedReader br = new
BufferedReader(xx);
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();

//
要用来做导入用的sql目标文件:
FileOutputStream fout = new FileOutputStream(
"e:/mysql-5.0.27-win32/bin/bjse22.sql");
OutputStreamWriter writer = new
OutputStreamWriter(fout, "utf8");
writer.write(outStr);
//
注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();

//
别忘记关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();

System.out.println("/* Output OK!
*/");

} catch (Exception e) {
e.printStackTrace();
}

}

/**
* 导入
*
*/
public static void load() {
try {
String fPath = "e:/mysql-5.0.27-win32/bin/bjse22.sql";
Runtime
rt = Runtime.getRuntime();

// 调用 mysql 的 cmd:
Process child =
rt.exec("mysql -u root bjse ");
OutputStream out =
child.getOutputStream();//控制台的输入信息作为输出流
String inStr;
StringBuffer sb
= new StringBuffer("");
String outStr;
BufferedReader br = new
BufferedReader(new InputStreamReader(
new FileInputStream(fPath),
"utf8"));
while ((inStr = br.readLine()) != null) {
sb.append(inStr +
"\r\n");
}
outStr = sb.toString();

OutputStreamWriter writer
= new OutputStreamWriter(out, "utf8");
writer.write(outStr);
//
注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免

热点内容
bilibi手机缓存目录在 发布:2025-02-12 08:33:11 浏览:457
听ti密码是多少 发布:2025-02-12 08:22:15 浏览:288
淘宝上传视频凭证 发布:2025-02-12 08:06:46 浏览:878
java画 发布:2025-02-12 08:01:00 浏览:549
光遇安卓官服是在哪里下载 发布:2025-02-12 07:47:47 浏览:648
安卓手机如何关闭程序打开广告 发布:2025-02-12 07:31:06 浏览:469
新版影视大全不能缓存 发布:2025-02-12 07:31:04 浏览:976
sql两个字段in 发布:2025-02-12 07:29:45 浏览:771
漂亮网站源码 发布:2025-02-12 07:26:40 浏览:760
执行脚本前 发布:2025-02-12 07:14:49 浏览:472