最近弄一个数据采集器,程序在读取页面的时候用gb2312会出现乱码所以用了utf-8 一切正常;
但后来去操作数据库(MSSQL) 打开表操作的时候 直接修改里面的字段时候报“将截断字符串或二进制数据”(SQL语句操作没
有异常),通常我遇到这个问题想到的就是字符串长度问题造成的 但我看了表结构和表数据 我可以确定字符长度没有超出,因为
我将程序插入的数据拷贝成新的一条数据后就完全正常,sql语句修改也没问题,数据呈现也未出现乱码
请问这个是不是数据库和程序编码冲突问题,如何解决
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
数据库表编码是什么?页面编码是什么?
得确定是哪一个步骤的问题,后台从sql server读出来的数据已经出事,还是说到了页面才出事?如果是后台已经出事,那就改改客户端连接编码(mysql,估计mssql也差不多)试试咯~
######你说的很有道理,我也碰到这个问题,不过我也没有搞明白,严厉求解决……而且速度。
######这是获取URL页面所有字符}
先前用的是GB2312 这样会出现乱码 之后改为UTF-8后数据正常了但是出现了我所提的问题
######[Title] [varchar](2000) NULL,
[Content] [text] NULL,
这是数据库的字段 不存在超出长度 后来在网上看了下有说用nvarchar 和 ntext的 但还是不能解决问题