为何JSP从SQL SERVER2000读取中文数据是乱码,如何解决?
为何JSP从SQL SERVER2000读取中文数据是乱码,如何解决?
但是从JSP输入数据库能正确显示中文
JSP文件以包含
<%request.setCharacterEncoding("GB2312");%>
TOMCAT5.0+JSDK1.4+SQL2000+SP4
问题点数:1、回复次数:11Top
1 楼joanna_h(探讨JAVA,QQ群:8953592。)回复于 2006-03-29 15:39:49 得分 0
s_wj = new String(rs.getString("WJ").getBytes(), "8859_1";
写成像这个样子,你试一下。Top
2 楼pope945(学无止尽)回复于 2006-03-29 15:59:32 得分 0
<%=new String(rs.getString(2).getBytes("8859_1"),"gb2312")%>
我其中的代码是这样写的
还是有问题Top
3 楼MagicianLiu(魔术师·刘)回复于 2006-03-29 16:03:12 得分 0
页面全部统一成编码UTF就没问题了。Top
4 楼pope945(学无止尽)回复于 2006-03-29 16:54:52 得分 0
全部UTF-8中文就成口口这样子了Top
5 楼chengxuyuan711(andy)回复于 2006-03-29 17:24:16 得分 0
试试<%=new String(rs.getString(2).getBytes(),"gbk")%>Top
6 楼sdxlh007(海)回复于 2006-03-29 17:42:56 得分 0
有没有加上过滤的类啊?加上了应该就没事了Top
7 楼pope945(学无止尽)回复于 2006-03-29 21:18:06 得分 0
就一个很简单的查询,还要另外加个类么?Top
8 楼sdxlh007(海)回复于 2006-03-30 09:03:50 得分 0
如果想要不出现乱码就加个过滤器,拷个现成的过来就可以,不会很复杂Top
9 楼fleagle236(无情浪子)回复于 2006-03-31 11:10:28 得分 1
数据库里的编码和JAVA里的编码是不一样的
进行存储的时候进行编码转换就可以了。
编码转换类如下:可以解决问题。
import java.io.UnsupportedEncodingException;
public class transFormat
{
public transFormat()
{
}
public static String unicodeToGBK(String strIn)
{
byte b[];
String strOut = null;
if (strIn == null || strIn.trim().equals(""))
{
return strIn;
}
else
{
try
{
b = strIn.getBytes("GB2321");
strOut = new String(b, "ISO8859_1");
}
catch (UnsupportedEncodingException e)
{
}
return strOut;
}
}
public static String GBKtoUnicode(String strIn)
{
String strOut = null;
byte b[];
if (strIn == null || strIn.trim().equals(""))
{
return strIn;
}
else
{
try
{
b = strIn.getBytes("ISO8859_1");
strOut = new String(b, "GB2312");
}
catch (Exception e)
{
}
return strOut;
}
}
}
Top
10 楼dabinglian(学习)回复于 2006-03-31 11:51:15 得分 0
楼上正解,数据库的编码方式是不一样的,每次存数据都要进行编码,取出来之后再转换或来才不至于乱码Top
11 楼pope945(学无止尽)回复于 2006-04-02 10:08:01 得分 0
我 COPY了一个别人的类
问题解决
谢谢各位的帮助Top




