1. Konsep set aksara
Set aksara menyeragamkan hubungan pemetaan antara kod dan aksara, dan menentukan kaedah pengekodan aksara komputer. Tetapan set aksara dalam sistem pangkalan data yang berbeza mungkin berbeza, dan set aksara yang berbeza mempunyai ciri dan kelebihan yang unik. Berbanding dengan Latin1/Latin7, GB2312/GBK/GB18030 mempunyai kelebihan yang lebih besar dalam memproses aksara Cina.
Dalam MySQL, set aksara merujuk kepada cara untuk mengekod data aksara, termasuk pangkalan data, jadual dan lajur. Dalam istilah orang awam, set aksara merujuk kepada cara yang digunakan untuk menyimpan dan memproses aksara dan rentetan.
Set aksara yang disokong dalam MySQL terutamanya termasuk yang berikut: ASCII, GBK, GB2312, UTF-8, UTF-16 dan ISO-8859, dll. Antaranya, UTF-8 ialah set aksara yang paling biasa digunakan dalam MySQL kerana Ia menyokong pelbagai bahasa, mempunyai format pengekodan yang fleksibel, menjimatkan ruang dan faedah lain.
2. Bagaimana untuk menetapkan set aksara MySQL
Soal set aksara yang disokong oleh MySQL
Dalam pangkalan data MySQL , anda boleh Menyoal set aksara yang disokong oleh pangkalan data melalui arahan seperti berikut:
TUNJUKKAN SET KARAKTER;
Arahan ini boleh menyenaraikan pelbagai set aksara yang tersedia untuk MySQL, contohnya:
Charset | Description | Default collation | Maxlen |
---|---|---|---|
big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
dec8 | DEC West European | dec8_swedish_ci | 1 |
cp850 | DOS West European | cp850_general_ci | 1 |
hp8 | HP West European | hp8_english_ci | 1 |
koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
latin1 | iso-8859-1 West European | latin1_swedish_ci | 1 |
latin2 | iso-8859-2 Central European | latin2_general_ci | 1 |
swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
ascii | US ASCII | ascii_general_ci | 1 |
ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
hebrew | iso-8859-8 Hebrew | hebrew_general_ci | 1 |
tis620 | TIS620 Thai | tis620_thai_ci | 1 |
euckr | EUC-KR Korean | euckr_korean_ci | 2 |
koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
greek | iso-8859-7 Greek | greek_general_ci | 1 |
cp1250 | Windows Central European | cp1250_general_ci | 1 |
gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
latin5 | iso-8859-9 Turkish | latin5_turkish_ci | 1 |
armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
cp866 | DOS Russian | cp866_general_ci | 1 |
keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 |
macce | Mac Central European | macce_general_ci | 1 |
macroman | Mac West European | macroman_general_ci | 1 |
cp852 | DOS Central European | cp852_general_ci | 1 |
latin7 | iso-8859-13 Baltic | latin7_general_ci | 1 |
utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |
utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 |
cp1256 | Windows Arabic | cp1256_general_ci | 1 |
cp1257 | Windows Baltic | cp1257_general_ci | 1 |
utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
binary | Binary pseudo charset | binary | 1 |
geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 |
cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |
eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |
Tetapkan set aksara pangkalan data
Apabila kami mencipta pangkalan data MySQL baharu, kami boleh menetapkan set aksara lalai pangkalan data supaya semua jadual dalam pangkalan data Semua set aksara akan menggunakan set aksara ini. Langkah-langkah khusus adalah seperti berikut:
2.1 Mula-mula semak set aksara yang disokong oleh MySQL
mysql> SHOW CHARACTER SET;
2.2 Apabila mencipta pangkalan data baharu, tambahkan aksara tetapkan tetapan Tentukan
BUAT PANGKALAN DATA new_db SET KARAKTER utf8;
atau
Ayat berikut ditulis semula: "Buat pangkalan data baharu yang dipanggil 'new_db' dengan set aksara lalai utf8."
di mana utf8 ialah salah satu set aksara yang biasa digunakan.
Tetapkan set aksara jadual MySQL
Untuk memastikan jadual boleh menyimpan dan memaparkan data dengan betul, kita perlu menetapkan pengekodan aksara untuk jadual. Dalam MySQL, set aksara jadual boleh ditetapkan semasa mencipta jadual. Jadual yang telah dibuat boleh diubah suai menggunakan arahan ALTER.
3.1 Tetapkan set aksara semasa mencipta jadual
BUAT JADUAL jadual_baru (
id INT(11) BUKAN NULL AUTO_INCREMENT,
nama VARCHAR(50) NOT NULL DEFAULT '' ,
KUNCI UTAMA (id)
) ENGINE=CHARSET LAALA InnoDB=utf8;
Enjin storan yang digunakan untuk menetapkan jadual ialah ENGINE=InnoDB, dan set aksara lalai digunakan untuk menetapkan jadual ialah CHARSET=utf8.
3.2 Ubah suai set aksara jadual
UBAH JADUAL lama_jadual TUKAR KE SET WATAK utf8;
atau
UBAH JADUAL jadual_lama UBAHSUAI nama LAjur VARCHAR( 50) CHARACTER SET utf8;
Antaranya, arahan CONVERT TO digunakan untuk mengubah suai set aksara lalai jadual, dan arahan MODIFY COLUMN digunakan untuk mengubah suai set aksara lajur dalam jadual.
Tetapkan set aksara untuk sambungan MySQL
Apabila menyambung ke pelayan MySQL, anda juga boleh menetapkan set aksara untuk operasi. Tetapan set aksara, sering dipanggil "set aksara pelanggan", merujuk kepada set aksara yang digunakan untuk data yang dihantar pada sisi klien.
4.1 Lihat set aksara sambungan semasa
mysql> SELECT @@character_set_connection;
4.2 Ubah suai set aksara sambungan
SET character_set_connection = utf8;
atau
mysql --default-character-set=utf8 -u root -p
Antaranya, arahan SET boleh mengubah suai set aksara lalai bagi sambungan, --default-character Perintah -set boleh menentukan set aksara klien.
Tetapan set aksara lain
Dalam sesetengah kes, untuk mengendalikan beberapa keperluan storan dan penukaran data yang kurang biasa, mungkin perlu untuk dayakan tetapan set aksara tambahan untuk MySQL. Dalam kes ini, anda mungkin perlu mengubah suai fail konfigurasi MySQL-my.cnf fail dengan keistimewaan pentadbir. Kaedah pengubahsuaian adalah seperti berikut:
5.1 Cari fail my.cnf
Di Linux, fail my.cnf biasanya disimpan dalam /etc/my.cnf atau /etc/mysql /my.cnf direktori .
Dalam Windows, fail my.cnf biasanya disimpan dalam direktori pemasangan pangkalan data MySQL.
5.2 Ubah suai fail my.cnf
Tambah pernyataan berikut dalam fail my.cnf:
[mysqld]
character_set_server=utf8
init_connect= 'SET NAMES utf8'
Antaranya, arahan character_set_server digunakan untuk menetapkan set aksara yang disenaraikan, dan arahan init_connect digunakan untuk menetapkan set aksara secara automatik semasa membuat sambungan.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan set aksara dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!