1. 程式人生 > 其它 >java中文亂碼常見解決方式

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/