MS SQL插入中文出现乱码????的解决
作者:admin 日期:2006-09-30
今早在做一个menu的时候,发现插入的中文在数据库中显示成了??之类的,而相关的英文却是没有问题的。写的很简单的语句如下:
insert into menuparent
(
ParentClassName,
ParentClassUrl
)
values
('首页','../index.aspx')
go
结果则是:
?? ../index.aspx
这可怎行呢?中文不能出来的呀[em03]
搜索是我们最好的老师,找了一通,这个方法可行喔
insert into menuparent
(
ParentClassName,
ParentClassUrl
)
values
(N'首页','../index.aspx')
go
看到没有,在首页前面多了一个N的字母
原因可能是:
1.我设置的ParentClassName这个字段的数据类型是 nchar(30)
2.我用的是英文版的SQL 版本是:Sql2005 Express En版
解决方法:
1.英文默认是ascii,英文版的數據庫存中文必須用到Unicode。字符型采用Nchar,Nvarchar,ntext.
2.插入數據的時候,要加N
另附在CSDN看到的一点东西:
例如,若要使用代码页 850 将 pubs 数据库中的 authors2 表大容量复制到 Authors.txt 数据文件,请在命令提示符下执行:
bcp pubs..authors2 out authors.txt -c -C850 -Sservername -Usa -Ppassword
另外,使用 CODEPAGE 子句,BULK INSERT 语句也可以使用由用户指定的代码页读取数据文件。例如,若要使用代码页 850 将 Authors.txt 数据文件大容量复制到 pubs 数据库的 authors2 表中,可从 SQL 查询分析器这样的查询工具中执行:
BULK INSERT pubs..authors2 FROM 'c:\authors.txt'
WITH (
CODEPAGE = 850
)
下面是代码页的有效值。
http://community.csdn.net/Expert/topic/4951/4951516.xml?temp=.3520624
代码页值 描述
ACP 将数据导入 SQL Server 实例时,数据类型为 char、varchar 或 text 的列从 ANSI/Windows 代码页 (ISO 1252) 转换为 SQL Server 代码页,从 SQL Server 实例导出数据时相反。
OEM(默认值) 将数据导入 SQL Server 实例时,数据类型为 char、varchar 或 text 的列从系统 OEM 代码页转换为 SQL Server 代码页,从 SQL Server 实例导出数据时相反。
RAW 这是最快的选项,因为不会发生从一个代码页到另一个代码页的转换。
<值> 特定的代码页号码,例如 850。
insert into menuparent
(
ParentClassName,
ParentClassUrl
)
values
('首页','../index.aspx')
go
结果则是:
?? ../index.aspx
这可怎行呢?中文不能出来的呀[em03]
搜索是我们最好的老师,找了一通,这个方法可行喔
insert into menuparent
(
ParentClassName,
ParentClassUrl
)
values
(N'首页','../index.aspx')
go
看到没有,在首页前面多了一个N的字母
原因可能是:
1.我设置的ParentClassName这个字段的数据类型是 nchar(30)
2.我用的是英文版的SQL 版本是:Sql2005 Express En版
解决方法:
1.英文默认是ascii,英文版的數據庫存中文必須用到Unicode。字符型采用Nchar,Nvarchar,ntext.
2.插入數據的時候,要加N
另附在CSDN看到的一点东西:
例如,若要使用代码页 850 将 pubs 数据库中的 authors2 表大容量复制到 Authors.txt 数据文件,请在命令提示符下执行:
bcp pubs..authors2 out authors.txt -c -C850 -Sservername -Usa -Ppassword
另外,使用 CODEPAGE 子句,BULK INSERT 语句也可以使用由用户指定的代码页读取数据文件。例如,若要使用代码页 850 将 Authors.txt 数据文件大容量复制到 pubs 数据库的 authors2 表中,可从 SQL 查询分析器这样的查询工具中执行:
BULK INSERT pubs..authors2 FROM 'c:\authors.txt'
WITH (
CODEPAGE = 850
)
下面是代码页的有效值。
http://community.csdn.net/Expert/topic/4951/4951516.xml?temp=.3520624
代码页值 描述
ACP 将数据导入 SQL Server 实例时,数据类型为 char、varchar 或 text 的列从 ANSI/Windows 代码页 (ISO 1252) 转换为 SQL Server 代码页,从 SQL Server 实例导出数据时相反。
OEM(默认值) 将数据导入 SQL Server 实例时,数据类型为 char、varchar 或 text 的列从系统 OEM 代码页转换为 SQL Server 代码页,从 SQL Server 实例导出数据时相反。
RAW 这是最快的选项,因为不会发生从一个代码页到另一个代码页的转换。
<值> 特定的代码页号码,例如 850。
[本日志由 admin 于 2008-05-10 11:05 PM 编辑]
上一篇: 在岁月中沧桑下一篇: 爱情,不是一味地付出
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 4 | 引用: 311 | 查看次数: 49847
发表评论