读取数据:httpservletrequest.setCharacterEncoding("gb2312");Strings1=httpservletrequest.getParameter("source");byteabyte0[]=s1.getBytes("ISO-8859-1");s2=newString(abyte0)...
读取数据:
httpservletrequest.setCharacterEncoding("gb2312");
String s1 = httpservletrequest.getParameter("source");
byte abyte0[] = s1.getBytes("ISO-8859-1");
s2 = new String(abyte0);
输出数据中文就是乱码
s3 = new String(resultset.getString("source"));
输出页面
httpservletresponse.setContentType("text/html; charset=gb2312");
用这种方式也不行:
InputStream in = resultset.getBinaryStream("source");
byte[] buffer = new byte[1024];
int len = 0;
while ( (len = in.read(buffer)) != -1)
{
s3 += new String(buffer, 0, len);
}
in.close();
其他类型都能正常显示中文
满意加高分
text,vchar类型
都是用的gb2312
BLOB是二进制类型直接显示肯定是乱码啊
数据库default-character-set=gb2312其他地方的中文也会变成乱码
default-character-set=latin1其他地方中文正常显示
网页是charset=gb2312,
class文件:httpservletresponse.setContentType("text/html; charset=ISO8859_1");
字段类型是text或者varchar
insert into source_code (solution_id,source) values(?,compress(?))
column charset=atin1
能够正常显示繁体简体中文,英文以及特殊符号
把BLOB换成TEXT类型能正常显示
//paramHttpServletRequest.setCharacterEncoding("gb2312");
String str3 = paramHttpServletRequest.getParameter("source");
// byte[] arrayOfByte = str2.getBytes("ISO-8859-1");
//String str3 = new String(arrayOfByte);
SQL语句:
insert into source_code (solution_id,source) values(?,compress(?))
改为:
insert into source_code (solution_id,source) values(?,?)
但是原来的数据是用compress压缩的现在是乱码了
压缩text数据又不能正常显示中文
展开