說明
項目出現中文亂碼現象、常見編碼解決方法如下。
項目亂碼
項目工作空間
在 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;
補充
如果出現亂碼現象、可對應文章修改。
更多編碼設置、後續補充。