中文亂碼問題
1.在傳入的url中含有中文
豹紋頭 query String parameter
解決如下:
//jsp中傳值方式通過url 會在地址欄顯示
//防止亂碼有兩種解決方法(get請求)
//1.servlet代碼中獲取url中的值
String name = req.getParameter("name");
//在這裏添加一個過濾 轉換中文亂碼
name = new String(name.getBytes("ISO8859-1"),"UTF-8");
//2.在javascript代碼中 也可以直接把要傳入的url值進行轉碼
var urlCode = encodeURIComponent("要傳入url中的值")
xmlHttp.open("get","/servlet?params="+urlCode);
2.表單提交(post)中含有中文
豹紋頭顯示formDate
//轉化表單中中文亂碼問題
req.setCharacterEncoding("UTF-8");
//doPost 中獲取表單中的值
String name = req.getParameter("name");
3.給客戶端設置響應編碼
防止在網頁或者客戶端出現亂碼現象
//獲取表單之前添加響應編碼
resp.setParameter("UTF-8");
以上是對於少量數據的按需轉碼,某些字符的亂碼都可以轉換解決
全局的格式轉碼配置
在流行的ssm框架中 在web.xmL中配置字符過濾轉碼 在整個操作過程中就無需注意轉碼的問題
配置如下 在web.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--字符集過濾器-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
其中filter-mapping配置的是所有的請求都會經過字符過濾器
init-param爲轉換格式 forceRequestEnCoding 請求數據轉碼
forceResponseEncoding 爲響應數據轉碼 其實和上面的轉碼性質一樣只不過這裏通過過濾器做成全局的了。
—
最近在做echarts的測試用例 但是轉換後的json數據去發現中文亂碼問題
嘗試了以上所有依然不能解決,
貼上http響應頭:
做測試的時候使用的是ssm框架 這裏的解決辦法只針對於springMVC框架
方案如下:
@RequestMapping(value = "/bar",method = RequestMethod.POST,
produces = {"application/text;charset=UTF-8"})//此配置解決響應數據亂碼問題
@ResponseBody()
public String init(){
//業務邏輯
return '返回的json數據';
}
解決後響應頭如下:
如有不當之處 還請諒解 如能對您有幫助還請推薦 謝謝