MySQL設定編碼和專案中如何統一編碼
阿新 • • 發佈:2019-01-03
資料庫、表、表字段、伺服器程式碼、伺服器檔案、瀏覽器顯示的編碼要統一。
建庫建表時指定編碼:
建立資料庫時指定庫編碼:
create database databaseName default character set utf8 collate utf8_general_ci;
建立表時指定表編碼:
create table tableName(
id int(32) primary key not null
)default charset=utf8;
建立表時指定表字段編碼:
create table tableName(
id int(32) primary key not null,
`code` varchar(128) unique not null character set utf8 collate utf8_general_ci
)default charset=utf8;
當庫和表的編碼都設定後,表字段編碼可以不用設定,反正我是這樣理解的,不設定就預設使用表設定的編碼。
mysql設定編碼命令
注意:以下命令只在當前連線下有效,當重啟資料庫或新開連線後失效。想一勞永逸請在mysql配置檔案中配置預設編碼。
set character_set_client = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;/*這裡要注意很有用*/
set character_set_server = utf8;
set collation_connection = utf8_bin;
set collation_database = utf8_bin;
set collation_server = utf8_bin;
mysql配置檔案中配置預設編碼
1、中止MySQL服務
2.1(Linux)、在/etc/下找到my.cnf,如果沒有就把mysql的安裝目錄下的support-files目錄(有的linux是安裝目錄的根目錄)下的my-medium.cnf(或是my-large.cnf)複製到/etc/下並改名為my.cnf即可,這個步驟不同Linux版本會對應不用的目錄和檔名。
2.2(Windows)、在安裝根目錄下找到my.ini,不可能沒有。
3、開啟my.cnf(或my.ini)以後修改成以下:
[client]
default-character-set=utf8
[mysqld]
#set the default character set.
character-set-server=utf8
init_connect='SET NAMES utf8'
[mysqld_safe]
default-character-set=utf8
[mysql]
default-character-set=utf8
4、啟動MySQL服務
連線資料庫設定編碼
jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf8
注意以上程式碼如果寫在xml中由於&是xml中的字元實體,所以需要將&改成&
jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf8
伺服器程式碼和檔案設定編碼
設定檔案編碼
首先,如果需要將所有檔案的編碼設定成utf-8,特別時在windows下經常出現此類亂碼問題。
特別注意,這裡說的是檔案編碼,你在程式碼裡是設定不了的,只能通過外部來更改。
這裡以eclipse為例:
python
# -*- coding: utf-8 -*-
jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
瀏覽器顯示編碼
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
java與mysq編碼對應關係
java中的常用編碼UTF-8、GBK、GB2312、ISO-8859-1,對應mysql資料庫中的編碼utf8、gbk、gb2312、latin1。