java乱码出现的问题有很多,这里主要解释tomcat,jsp,html,http(get,post请求乱码处理)。常见的问题可能是tomcat,http请求乱码问题,对于jsp,html是很小儿科的,希望对需要的人有用。
1、关于配置Tomcat的URIEncoding
问题:程序需要发送http GET请求到服务器,请求的参数中包含了中文字符。程序中参数为UTF-8格式,且经过了UTF-8 URL编码再发送。使用的tomcat服务器,但服务器端后台程序中取到的参数的中文是乱码。
解决方法:修改Tomcat的Server.xml,在Connector标签中加上URLEncoding参数。
内容:
1
2
3
4
|
<Connector port=
"8080"
maxThreads=
"150"
minSpareThreads=
"25"
maxSpareThreads=
"75"
enableLookups=
"false"
redirectPort=
"8443"
acceptCount=
"100"
debug=
"99"
connectionTimeout=
"20000"
disableUploadTimeout=
"true"
URIEncoding=
"UTF-8"
/>
|
2、http请求乱码问题。
post请求出现乱码:
解决方法:在servlet页面添加
response.setCharcacterEncoding("utf-8")
get请求出现乱码:
解决方法:在后台获取字符串后对编码进行转化,如常见的编码ISO-8859-1,代码如下
1
2
|
String name = request.getParameter(
"name"
);
name=
new
String(name.getBytes(
"ISO-8859-1"
,
"utf-8"
))
|
3、Html中文乱码。
问题:htmll出现乱码的主要原因是html源代码内中文字内容与html编码不同造成。网页的编码是gbk,而中文的是utf-8;
解决方法:在页面顶部<head>......</head>中加上以下代码
1
|
<
meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
4、jsp页面出现乱码。
问题:开发人员开发jsp应该拥有良好的编码意识,jsp顶部应该首先明确编码是什么?
解决方法:在页面顶部加上以下语句
1
|
<%@ page language=
"java"
import
=
"java.util.*"
pageEncoding=
"utf-8"
%>
|