servlet网页显示MySQL BLOB中文乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet网页显示MySQL BLOB中文乱码相关的知识,希望对你有一定的参考价值。
读取数据:
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数据又不能正常显示中文
1。那么你找到mysql的安装目录下的my.ini文件,把里面的default-character-set=GBK ,但是需要注意,这里设成GBK之后在页面里面也需要设成GBK,否则会出现编码不一致,会出现乱码。
2。利用前端工具修改 每个字段的格式都是gbk,数据库也就没有乱码问题了。 参考技术A 你可以叫我QQ,我试试 164485039
我越开越模糊呢
感觉你的问题逻辑合不上 参考技术B getParameter乱码问题可以通过修改tomcat服务器的配置文件设置charset解决。 参考技术C 这个不好说啊,所谓其他类型都能正常显示中文是什么意思?确定编码是gb2312吗?改成UTF-8试试?
JSP之mysql中文乱码问题
查看数据库编码方式
show variables like ‘character%‘;
关于jsp页面插入数据库乱码问题。
我遇到的问题是插入数据库后后台select * from tablename
及jsp网页out.println显示的中文均显示??
解决方案:
show variables like ‘character%‘ 很多数据库默认的是Latin1
此时要将显示的编码方式不同的均改一致的显示,其中character_set_system无法修改;
这里在jsp编码时,我的开头设置为utf-8:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
数据库编码我也将其改为utf-8的编码方式:
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_server=utf8;
当然,在mysql的配置文件中也将character_set_server = utf8添加到了倒数第二行(一个空行);
之后,一定要记住要重新建表!!!
以上是关于servlet网页显示MySQL BLOB中文乱码的主要内容,如果未能解决你的问题,请参考以下文章
在jsp文件中的out.println(中文),在网页上中文显示的却是乱码和问号,怎样解决?