碰見亂碼的狀況通常都是粗枝大葉形成的,就像我今天對接支付寶支付接口碰到的中文商品名稱在支付寶收銀臺亂碼了,找了半天問題原來是控制層沒有設置響應編碼形成的。html
//設置返回字符編碼,設置返回內容類型防止中文亂碼
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");java
這兩句代碼在向客戶端響應以前執行纔會有效果。web
第一句代碼是設置字符集的編碼utf-8,若是第二句代碼的編碼設置不一樣,則第一句代碼設置的編碼將覆蓋第二句設置的編碼。瀏覽器
第二句代碼是告訴瀏覽器我響應的內容是"text/html"類型,字符集編碼爲"utf-8",你能夠經過瀏覽器自帶的調試工具查看響應頭信息,它會顯示在響應頭信息中。工具
若是第二句代碼能夠解決掉問題,第一句代碼我感受沒有必要留着,它只是設置響應字符集編碼,第二句已經包含了字符集編碼,而且第一句代碼只是設置字符集編碼並無什麼效果,由於它不會向客戶端通知響應的編碼信息。編碼
若是上面說的不對,請告知,由於本人對javaweb知識瞭解並不深。spa
若是亂碼還沒法解決,請檢查編碼是否統一(好比:存的是utf-8編碼字符串,取也要按utf-8編碼來取)調試