java中文亂碼常見解決方式

說明

項目出現中文亂碼現象、常見編碼解決方法如下。

項目亂碼

項目工作空間

Windows -> Prefenrences -> General -> Workspace 中進行設置

在創建項目工作空間的時候、優先設置編碼,在該工作空間下創建的項目默認遵循工作框架配置

項目編碼

Project -> Resource中設置

創建項目的時候、設置編碼,則項目下文件都將會和項目統一

頁面文件編碼

文件右鍵 Properties -> Resource

文件頭編碼

文件頭一般是HTML、JSP標籤頭部添加編碼
JSP:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

HTML:

添加在<head>標籤裏面
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

編輯器編碼設置

NotePad++

編輯器打開一個文件時候亂碼
菜單 -> 格式

記事本

存儲時,保存爲UTF-8格式

服務器亂碼

SpringMVC

web.xml添加

<filter>
	<description>字符集過濾器</description>
	<filter-name>encodingFilter</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<description>字符集編碼</description>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>encodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

Tomcat編碼

Tomcat 的 conf/server.conf設置編碼、設置爲:

<Connector port="8080" protocol="HTTP/1.1"
	connectionTimeout="20000" 
	URIEncoding="UTF-8"
	redirectPort="8443" />

添加:URIEncoding="UTF-8" 屬性

請求響應編碼

設置請求、響應編碼

//設置獲取請求的編碼
request.setCharacterEncoding("utf-8")
//設置服務器端的編碼
response.setCharacterEncoding("utf-8");
//通知瀏覽器服務器發送的數據格式
response.setContentType("text/html;charset=utf-8");

字符串編碼

String oldStr = "編碼設置";
String newStr = new String(oldStr.getBytes(), "UTF-8");  
System.out.println("UTF-8編碼:" + newStr);

JDBC 連接指定編碼

url=jdbc:mysql://127.0.0.1/database?characterEncoding=UTF-8

數據庫設置編碼

編碼可選:

mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;

數據庫表設置編碼

創建表的時候、指定編碼:DEFAULT CHARSET=UTF8;

CREATE TABLE `type` ( 
	`id` int(10) unsigned NOT NULL auto_increment,
	`type_name` varchar(50) character set utf8 NOT NULL default '',
	PRIMARY KEY (`id`) 
)  DEFAULT CHARSET=UTF8; 

補充

如果出現亂碼現象、可對應文章修改。
更多編碼設置、後續補充。

參考網站(個人站):https://liujilu.com/2017/08/04/setup-encode/

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