Java web 數據庫連接等出現亂碼等問題總結

首先最近我出現了這個問題,稍微測試了下,找到了這個問題.此方法適用很多情況,特此記錄.

 首先明白亂碼,?等出現的原因:

編碼格式(utf-8等)不對,導致顯示出現問題.

依次排除4步走:前端,後臺 ,連接傳輸,數據庫(以下編碼按UTF-8爲例)

1.前端

獲取數據,將界面格式改爲UTF-8,如jsp中

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

 確保界面等爲UTF-8格式

2.後臺

	response.setContentType("text/html;charset=utf-8");	
	request.setCharacterEncoding("UTF-8");
	response.setCharacterEncoding("UTF-8");
	

直接全部設置爲UTF-8,就不用考慮後臺了

測試方法: 

response.getWriter().append("這是UTF-8的輸出");

3.連接

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8

將連接傳輸編碼改爲UTF-8,保證傳輸無誤

4.數據庫

確保表的字段屬性爲varchar可顯示中文屬性

測試:修改某條記錄中的值,看看是否顯示中文

 

寫代碼時連接時加上useUnicode=true&characterEncoding=utf8,建庫建表也使用UTF-8,後臺加上request.setCharacterEncoding("UTF-8");基本上就不出現亂碼了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章