MS-SQL SERVER(2)

本文详细介绍了在 SQL Server 数据库中使用 varchar 和 nvarchar 类型字段时遇到的编码问题,包括页面数据显示乱码、查询结果错误等问题,并提供了将 varchar 类型字段更改为 nvarchar 类型的解决方案。此外,还解释了在字符前加 N 的原因,即将其转化为 unicode 字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[转]

在去年的一个网站项目中,我使用了sql server数据库,数据库排序规则为Chinese_PRC_CI_AS.其中部分字段使用varchar型。

我在本机浏览数据库中数据正常,页面数据显示正常。但是当我将数据库导入到服务器以后,在客户端发现页面从数据库中读取的数据显示全是乱码。我通过查询分析器连接到服务器,发现数据库中的汉字也全变成了乱码。

我估计服务器端sql server为英文版,于是将服务器数据库中varchar型字段都改为nvarchar型,乱码问题解决。但是同时我又发现一个奇怪的现象。比如数据库中有两个记录。

表名: ComputerInfo

Computer        computerType  

成都家具厂        私营

合肥家具厂        私营

其中Computer字段为nvarchar型。我用  select * from ComputerInfo where Computer like ‘%成都%’   返回的记录数总是0.奇怪了,明明数据库中有数据的嘛。我查阅了大量的资料以后,终于解决了问题。只需要把查询语句改为select * from ComputerInfo where Computer like N‘%成都%’ 即可。在字符前加N表示将其转化为unicode字符。真让我有点哭笑不得。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值