如何解决MSSQL中文数据乱码问题

今天遇到了在数据库中直接写SQL语句,语句中包含中文,但是数据库的表里是包含“?” 的乱码。

我程序代码中,调试时得到的SQL不是乱码,在控制台中也不是乱码。但是在数据库中却出现了乱码。


当用MSSQL控制台去插入或更改中文数据时,中文字符可能会被显示成问号(??),以下提供2种解决办法:

1.在SQL里加上‘N’强制转换编码
  a.把所有字符字段都改成无符号类型,如:nchar,ntext,nvarchar
  b.用查询分析器进行数据管理,在中文数据前加N,强制转换编码,如:insert into test(name,address) values(N'技术',N'易网库')

2.改数据库的排列规则(collation)
  a.执行下面sql语句改collation:
  alter database 数据库名称 collate Chinese_PRC_CI_AS
  b.把所有字符字段都改成无符号类型,如:nchar,ntext,nvarchar

注意:

  1.对已经乱码的数据,没有效果
  2.这只针对MSSQL控制台中文乱码的问题,若是网站乱码,得进一步检查文件存储编码和显示编码的设置。
  3.执行下面的sql语句,可以查看当前数据库的排列规则:
  SELECT DATABASEPROPERTYEX('数据库名称', 'Collation') SQLCollation;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值