本人初入職場沒多久,編寫代碼的水準也很菜,編寫部落格是跟寫筆記的想法是一緻的,隻是自己的一些工作中的總結,有的可能對您來說并沒有什麼卵用,勿噴。
這次筆記的主題圍繞的是前台向背景傳值的亂碼問題。 中文亂碼是一個頭疼的問題,每每為解決亂碼問題都會很抓狂,第一次遇到亂碼問題記得是用mybatis查詢的時候總是取不到資料,公司采用的資料庫是MySQL,以為是傳值傳錯了,經過一步一步調試之後發現是MySQL的中文亂碼問題,這個下次在寫MySQL方面的總結的時候會貼出。
公司采用的架構是Struts2+Spring+Mybatis,這幾天一直在解決前台向背景傳值亂碼的問題,在網上百度到如下幾種方法:
1)在頁面上定義charset的字元集
<%@ page language="java" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
2)采用設定字元集的格式
request.setCharacterEncoding("utf-8")
以上這兩種方法均試過,但是前台傳到背景的值還是亂碼,具體原因并沒有深究。
3)采用encodeURI、decode()方法
簡單舉例如下:
前台:var tiaojian = encodeURI(encodeURI($('#tiaojian').val()));
背景:tiaojian = java.net.URLDecoder.decode(tiaojian, "UTF-8");
運用次方法解決了我的傳值問題,目前認為這種方法最好用。