xiaotoly
2017-09-05 12:48SQL SERVEY 2005表的字符数据最后一个字节乱码(汉字乱码),显示为问号:?(0x3F)
20问题:
系统:GBK字符集, 数据库:SQL SERVEY 2005
定义的表数据举例:
CREATE TABLE [dbo].EXAMPLE_TEST
(
EXAMPLE_PAR varchar (32) COLLATE Chinese_PRC_BIN NOT NULL,
其它字段
)
后台写入表数据超过32字节,程序会强制截取前32位字节送给EXAMPLE_PAR字段,如果前面有英文等单个字节则最后一个汉字将会截位,但是EXAMPLE_PAR显示的内容有时正确有时错误如下(出现错误概率万分之几甚至更小,有的服务器都没出现,数据量都是百万以上):
青海长云暗雪山-孤城遥望玉门关正?
青海长云暗雪山-孤城遥望玉门关信
青海长云暗雪山a孤城遥望玉门关正?
青海长云暗雪山a孤城遥望玉门关信
个人推断:刚开始以为前端传入的,后来发现有的表只有后台才写入也会出现这样的问题,就是拼接字符串写入数据库这一个步骤,程序没有其它错误,就是会出现上面截位汉字的情况,但是存入数据库结果又不一致,要有问题肯定都有,同样的情况有时写入数据库有问号有时没有,所以认为数据库默认编码处理有问题,但是又找不到原因。
希望遇到过此类问题或知道原因的大神指点一二...
- 点赞
- 回答
- 收藏
- 复制链接分享
3条回答
为你推荐
- SQL数据库 怎么将一行数据变成多行?
- sql
- c#
- 4个回答
- [sql 问题] 请问 如何 查询一个表中中数据在另一个表中出现的次数?
- mysql
- 2个回答
- sql server 如何同时查询出 表内的第一条数据 和最后一条数据
- sql
- 2个回答
- Sql 语句问题:怎样查询一个表内的所有字段中是否包含“XXX”值?
- select
- sql
- 12个回答
- plsql comment显示为'???'乱码,其他正常,怎么解决乱码?
- sql
- 乱码
- 注册表
- 2个回答
换一换