SQL server 2005 为何插入汉字显示问号,修改也修改不了,为啥啊?求解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server 2005 为何插入汉字显示问号,修改也修改不了,为啥啊?求解相关的知识,希望对你有一定的参考价值。

使用SQL SERVER2005的时候常常遇到中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。
1、登录服务器打开Microsoft SQL Server Management Studio。
2、在要修改的数据库上单击鼠标右键,并选择“属性”。
3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。
4、将排序规则由默认的SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS。
5、点击确定就OK。

varchar修改为nvarcharchar修改为nchar
注:如果无法修改的话,请尝试关闭所有与此数据库的连接,实在不行的话请重启动SQL SERVER服务。

两种方法:
1:
安装时不要选 Hide advice configuration options
然后再 Collation designator and order 中选择 Chinese_PRC 就可以了。
2:
在建表时指明某个字段的语言
方法 COLLATE Chinese_PRC_CS_AS_WS
示例:
create table test(a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL, b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL )insert test values('中文','中文')
插入后 字段 a 为 中文 ,b 为 ??
参考技术A 显示?号,表示数据库字符集不认识这个字符,可能原因输入时,加入了不可见的控制字符,以为是空格,这个不认真的输入员经常碰到,不能修改,可能是这个字段是主键,数据库定位不了,删除吧。 参考技术B 字段类型的问题,去改表结构 参考技术C 你先把服务器关了,再修改试试 参考技术D 可以参考CSDN上面的:http://blog.csdn.net/vieri_ch/article/details/7435385

为啥在sql里的汉字在读出数据时却显示问号呢?

就随便print一个汉字的字符串,出来的都是问号,是sql装的问题吗?遮掩的话应该是可以在某个地方调过来的,请教那位高人指点下!

参考技术A 不是SQL装的有问题,只要在插入汉字的时候在前面加一个大写的N就好了,比如

insert a values(N'我是..')

加N代表以Unicode编码储存,这个编码全球通用,所以就不会存在乱码的问题了.
参考技术B 冒号前是标号,也就是标识一个地址的符号。这个地址上存储的指令是nop,也就是一个空操作。
请参考
参考技术C 看看编码,编码应该是不正确! 参考技术D 编码有问题

以上是关于SQL server 2005 为何插入汉字显示问号,修改也修改不了,为啥啊?求解的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 2005 中插入值数组?

日文符号“?”插入sql-server2005乱码问题

如何在 SQL Server 2005 中进行更新插入(更新或插入)

如何使用单引号 sql server 2005 插入文本

问:卸载microsoft sql server 2005 backward compatibility的方法

使用 INSERT INTO (SQL Server 2005) 插入多个值