java亂碼問題處理
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參數。
內容:
<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,代碼如下
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>中加上以下代碼
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4、jsp頁面出現亂碼。
問題:開發人員開發jsp應該擁有良好的編碼意識,jsp頂部應該首先明確編碼是什么?
解決方法:在頁面頂部加上以下語句
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>