sql 数据库里ntext类型中文读取出来全是乱码!寻求解决方法!!

时间:2021-05-10 06:33:51
怎么样把数据库里类型为ntext的字段里的中文正确输出到页面啊 
 我试了好多次,中文输出来的全是乱码啊?  
 大家帮帮忙~!!  非常感谢!

16 个解决方案

#1


乱码转一下不行吗?
Clob c = (Clob)从数据库获取

// Clob to String 转换

String text = ……;

text = new String(text.getBytes("ISO8859_1"),"GBK");

输出 text;

#2


我试过,但是不行啊

#3


看看你的代码

你是怎么转的?

#4


跟你的一模一样啊

#5


String str= new String(从数据库获取的数据.getBytes("ISO8859_1"),"GBK"); 
跟上面的一样啊,但是不行
这些方法都试过了
.getBytes("unicode"),"GBK"); 
都不行啊

#6


建议楼主检查一下数据库底层的数据类型

#7


数据库底层的数据类型就是ntext类型的啊
  如果是用vchar 类型存放  取出来就肯定不会中文乱码了啊

#8


看下数据库你取的字段的数据类型...

#9


取的字段的数据类型当然是String类型的啊

#10


该字段类型换成 varchar

#11


但是我现在考虑的就是怎么将ntext类型的中文输出到页面

#12


发现好多乱码的问题这里引用我刚才回答的来给你做一个参考



归集了我工作和实践,或者是自我学习的过程, 
大部分情况,当然,遇到的页面,也就是前台很少有问题,大部分都是后台处理 
第一:数据库字符集,也就是你这里用到的SQL,看是不是和前台一致,具体的,你可以上网查查,有很多方法,用命令行,SHOW VARIABLES LIKE 'character%';或者是直接查看文件里面的一个设置,也就是一个my.ini, 
http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html这里说得比较详细,你可以看看, 
第二:也就是后台处理,字符是否在后台就是得到的是?,这样存到数据库当中当然是以这样的形式来存进去的,这里可以用字符转换,建议可以设置一个断点就能够看到, 
第三:有人还说是tomcat里面设置转换问题,这个也可以到网上看看,具体的我想我给你说了,也讲不了那么清楚,其实这里一般没有问题,就是上面两个, 
第四:也就是一般不可能的,网页上的处理,还有就是设置一些拦截,或者是转换之类的,包括web.xml配置,包括做一个filter之类的 


最后说说,数据操作,不外乎这两三中,前台到后台,后台到前台,一般都是这样的,所以数据处理也就是这里可能出现问题,所以你可以针对的去检查一下,这里给你说了这么多,呵呵,不知道能否、榜上忙,希望你解决,谢谢

#13


非常感谢!

#14


补充一下   用到的数据库是sql server
数据库里的数据也全是手动插入的   因此不会存在说是存进去的
时候就已经乱码了      问题就是再取这些数据的时候
 中文都会变成乱码

#15


第一:
你取出这个数据的时候,你就单独的取出一条数据,看的到的system.out.println是不是乱码,如果是,就在这里转换一下,再打,
其实你这个不是特别复杂,所以这个方法够用,
第二:如果这里不是,那就是从后台到前台,你就用request,或者respons,的setEncoding来试试,
设断点哦,多调试一下,肯定一会儿就解决了

#16


同样的问题,我也想在不把数据类型ntext转换的前提下解决中文乱码……坐等高人(附带说明,用自写的方法GBK没用,那个只适用于jsp页面与页面之间以及页面与servlet之间,这个估计涉及到数据库里面的问题,不懂……)

#1


乱码转一下不行吗?
Clob c = (Clob)从数据库获取

// Clob to String 转换

String text = ……;

text = new String(text.getBytes("ISO8859_1"),"GBK");

输出 text;

#2


我试过,但是不行啊

#3


看看你的代码

你是怎么转的?

#4


跟你的一模一样啊

#5


String str= new String(从数据库获取的数据.getBytes("ISO8859_1"),"GBK"); 
跟上面的一样啊,但是不行
这些方法都试过了
.getBytes("unicode"),"GBK"); 
都不行啊

#6


建议楼主检查一下数据库底层的数据类型

#7


数据库底层的数据类型就是ntext类型的啊
  如果是用vchar 类型存放  取出来就肯定不会中文乱码了啊

#8


看下数据库你取的字段的数据类型...

#9


取的字段的数据类型当然是String类型的啊

#10


该字段类型换成 varchar

#11


但是我现在考虑的就是怎么将ntext类型的中文输出到页面

#12


发现好多乱码的问题这里引用我刚才回答的来给你做一个参考



归集了我工作和实践,或者是自我学习的过程, 
大部分情况,当然,遇到的页面,也就是前台很少有问题,大部分都是后台处理 
第一:数据库字符集,也就是你这里用到的SQL,看是不是和前台一致,具体的,你可以上网查查,有很多方法,用命令行,SHOW VARIABLES LIKE 'character%';或者是直接查看文件里面的一个设置,也就是一个my.ini, 
http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html这里说得比较详细,你可以看看, 
第二:也就是后台处理,字符是否在后台就是得到的是?,这样存到数据库当中当然是以这样的形式来存进去的,这里可以用字符转换,建议可以设置一个断点就能够看到, 
第三:有人还说是tomcat里面设置转换问题,这个也可以到网上看看,具体的我想我给你说了,也讲不了那么清楚,其实这里一般没有问题,就是上面两个, 
第四:也就是一般不可能的,网页上的处理,还有就是设置一些拦截,或者是转换之类的,包括web.xml配置,包括做一个filter之类的 


最后说说,数据操作,不外乎这两三中,前台到后台,后台到前台,一般都是这样的,所以数据处理也就是这里可能出现问题,所以你可以针对的去检查一下,这里给你说了这么多,呵呵,不知道能否、榜上忙,希望你解决,谢谢

#13


非常感谢!

#14


补充一下   用到的数据库是sql server
数据库里的数据也全是手动插入的   因此不会存在说是存进去的
时候就已经乱码了      问题就是再取这些数据的时候
 中文都会变成乱码

#15


第一:
你取出这个数据的时候,你就单独的取出一条数据,看的到的system.out.println是不是乱码,如果是,就在这里转换一下,再打,
其实你这个不是特别复杂,所以这个方法够用,
第二:如果这里不是,那就是从后台到前台,你就用request,或者respons,的setEncoding来试试,
设断点哦,多调试一下,肯定一会儿就解决了

#16


同样的问题,我也想在不把数据类型ntext转换的前提下解决中文乱码……坐等高人(附带说明,用自写的方法GBK没用,那个只适用于jsp页面与页面之间以及页面与servlet之间,这个估计涉及到数据库里面的问题,不懂……)