SQLSever 2005 无法识别中文(字段值“?”,sql语句中无法识别中文)
来源:互联网 发布:微信网页授权域名 编辑:程序博客网 时间:2024/05/22 16:39
在使用sqlserver时发现数据库的表中无法插入中文字符,所有中文字符在表中均显示为“?”,即使解决了“?”输入以后在查询分析器中使用sql语句进行相关数据(查询语句中含有中文)的查询查到的结果为空,这又是为什么?下面就这个问题做一下阐述。
背景知识:众所周知英文字符如果是Ascii编码的话只需要一个字节就够了,但是如果想要存储汉字或者是别的需要大存储容量的字符话用Ascii码就显得力不从心了,所以从兼容世界多文化的角度出发,unicode编码方式就出现了。这种编码方式规定无论是英文字符还是汉字字符还是其他语言的字符,统统规定为一个unicode字符,每个unicode字符用两个字符用两个字节表示。
这就出现了在数据库表中字段值有char(),nchar(),varchar() ,nvarchar()等类型的情况(至于这四种类型网上资料甚多,在此仅作简要说明)。其实这四种类型是很容易区分的,前面带有“n”的表示的‘national’的意思,即表明该字符的编码方式为unicode编码方式,而不带“n”的表示的非unicode的编码方式(ascii编码)。带有“var”字符的表示的是可变长度的类型,不带“var”字符的表示的固定长度的类型。
在使用sql2005的时候如果你选定的字符类型是char()或者是varchar()那么,当你的字段值中含有汉字的时候便会出现乱码情况,解决方式也非常的简单,将其类型改为nchar或着nvarchar()即可。但是当我们改变字段值类型后如果在查询分析器中使用含有汉字的sql语句如:select* from table where name=‘小明’,可能出现的问题是我们查出的结果中不显示该条记录的信息,也不会报错(表中记录确实含有name为‘小明’的记录)。这是由于我们在安装sql2005时的一个小疏忽导致的。有安装向导的指引我们很容易的根据提示“下一步”一路完成安装,但是其中有一个小地方是我们很容易忽略的,那就是数据库的排序规则。系统默认的排序规则是拉丁文SQL_Latin1_General_CP1_CI_AS并不是中文,所以才会出现上述问题。其解决方法也相当的简单,在我们建立数据库的时候指定默认规则为中文Chinese_PRC_BIN( _BIN 二进制排序,_CI(CS) 是否区分大小写,CI不区分,CS区分,_AI(AS) 是否区分重音,AI不区分,AS区分,_KI(KS) 是否区分假名类型,KI不区分,KS区分 ,_WI(WS) 是否区分宽度WI不区分,WS区分 其他形式同样为可选择形式)。当然如果觉得每次建立数据库时都需要改很麻烦,我们可以重装sql2005然后选择相应的中文排序规则就可以了。
- SQLSever 2005 无法识别中文(字段值“?”,sql语句中无法识别中文)
- 英文版sql 无法识别中文
- SQL语句中含有中文无法运行
- QT中中文路径无法识别的解决方法
- Cufon中文字符无法识别的解决方案
- 解决erlang R17无法识别中文问题
- TextMate无法识别中文的解决方法
- 解决Mysql server 5.1无法识别中文
- OCR tesseract中文无法识别问题
- 解决SQL语句中含有中文字符无法查询问题
- Jbpm4.3 工程运行出错以及中文无法识别解决方法
- 关于android uiautomator自动化工程使用中文 无法识别
- cmd命令行下javac 编译 无法识别中文
- (android文件下载)下载链接中包含特殊字符--空格,中文等,导致无法识别处理方案
- string转换成URL时,如果string中有中文字符,URL无法识别
- 如果JSON数据中有中文,输出Unicode编码,无法识别解决办法
- 理解collate Chinese_PRC_CI_AS ,请看实例:sql语句中如何识别字符串中的中文逗号的问题
- 使用MODI(Microsoft Office Document Imaging)识别中文,但无法区分段落
- Chrome的几类线程
- SQLserver中用convert函数转换日期格式
- hoj 2503 Bribing FIPA
- shell程序设计002
- strstr源码
- SQLSever 2005 无法识别中文(字段值“?”,sql语句中无法识别中文)
- Metasploit渗透测试指南
- c#数组利器——List<>
- 哑铃健身图解
- POJ 2909 Goldbach's Conjecture(我的水题之路——任一数为素数对之和)
- vs2010 的syslink control无法支持 多字节字符集
- HOJ2688 Color Segment
- cast 和convert用法详解
- Phone Gap问题集中解决