MySQL, sebagai pangkalan data sumber terbuka yang berkuasa, digunakan secara meluas dalam kebanyakan aplikasi dalam pelbagai industri. Tetapan set aksara adalah isu yang sangat penting apabila menggunakan MySQL. Artikel ini akan memperkenalkan cara untuk menetapkan set aksara MySQL untuk membantu pembangun menggunakan pangkalan data MySQL dengan betul.
1. Konsep set aksara
Set aksara ialah spesifikasi tentang perhubungan pemetaan antara kod dan aksara Ia menentukan kaedah pengekodan aksara komputer. Set aksara mungkin mempunyai tetapan yang berbeza dalam sistem pangkalan data yang berbeza, dan set aksara yang berbeza mempunyai ciri dan kelebihan yang berbeza. Contohnya, apabila memproses aksara Cina, GB2312/GBK/GB18030 mempunyai kelebihan berbanding Latin1/Latin7.
Dalam MySQL, set aksara merujuk kepada pengekodan data aksara dalam 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
Dalam pangkalan data MySQL, anda boleh menanyakan aksara set disokong oleh pangkalan data melalui arahan Set aksara, kaedahnya adalah 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 |
Apabila kami mencipta pangkalan data MySQL baharu, kami boleh menetapkan set aksara lalai pangkalan data supaya set aksara semua jadual dalam pangkalan data akan digunakan set aksara. 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 Takrifkan
BUAT PANGKALAN DATA new_db SET KARAKTER utf8;
atau
CIPTA PANGKALAN DATA new_db SET KARAKTER LALAI utf8;
salah satu daripada utf8 yang biasa. set aksara terpakai.
Untuk membolehkan medan jadual menyimpan dan memaparkan data dengan betul, kita perlu menetapkan set aksara untuk meja. Dalam MySQL, set aksara jadual boleh ditetapkan semasa mencipta jadual. Jika jadual telah dibuat, anda juga boleh mengubah suai jadual melalui 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 LALAI InnoDB=utf8;
Antaranya, ENGINE=InnoDB digunakan untuk menetapkan enjin storan jadual, dan CHARSET=utf8 digunakan untuk menetapkan set aksara lalai jadual .
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.
Apabila menyambung ke pelayan MySQL, anda juga boleh menetapkan set aksara untuk operasi. Tetapan set aksara ini sering dipanggil "set aksara pelanggan" dan merujuk kepada set aksara data yang dihantar dalam 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.
Dalam sesetengah kes, anda mungkin perlu menghidupkan tetapan set aksara MySQL yang lain untuk mengendalikan beberapa tempat penyimpanan data dan penukaran yang jarang berlaku. Pada masa ini, anda mungkin perlu mengubah suai fail konfigurasi MySQL - fail my.cnf Mengubah suai fail ini mungkin memerlukan hak 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.
MySQL ialah pangkalan data sumber terbuka yang sangat popular, dan tetapan set aksaranya memainkan peranan yang sangat penting. Menetapkan set aksara MySQL dengan betul memastikan pembacaan, penulisan dan penyimpanan data yang normal. Dalam artikel ini, kami memperkenalkan konsep asas set aksara MySQL, cara menetapkan set aksara apabila mencipta pangkalan data, jadual dan sambungan, dan cara mengubah suai fail my.cnf untuk mendayakan lebih banyak tetapan set aksara Pengetahuan ini boleh membantu pembangun dengan lebih baik gunakan MySQL.
Atas ialah kandungan terperinci set aksara mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!