Set Aksara Unikod dalam MySQL: Memahami Anomali 'Ä'
Layanan MySQL terhadap aksara 'ä', 'ö' dan 'ü' sebagai 'AAO' apabila mencari boleh membingungkan. Untuk memahami tingkah laku ini, kita mesti mendalami dunia set aksara Unicode dan himpunan mereka.
Dalam himpunan Unicode bukan bahasa khusus, seperti utf8_general_ci dan utf8_unicode_ci, aksara Unicode tertentu dianggap setara. Khususnya, aksara 'Ä', 'Ö' dan 'Ü' dinormalisasikan kepada persamaan asasnya 'A', 'O' dan 'U'. Normalisasi ini dilakukan untuk memastikan aksara dengan sebutan fonetik yang serupa dilayan secara sama dalam perbandingan dan carian.
Untuk melumpuhkan normalisasi ini dan melakukan carian sensitif huruf besar-kecil untuk rentetan tepat 'Härligt', anda boleh menggunakan utf8_bin pengumpulan:
select * from topics where name='Harligt' COLLATE utf8_bin;
Sebagai alternatif, anda boleh menggunakan pengumpulan yang berbeza untuk pertanyaan sahaja, seperti latin1_bin:
select * from topics where name ='Härligt' COLLATE latin1_bin;
Walau bagaimanapun, jika anda memerlukan carian tidak peka huruf besar-kecil tanpa Ä = Penukaran, anda perlu menggunakan pendekatan yang berbeza, kerana tiada pengumpulan MySQL yang menyediakan perbandingan tidak sensitif huruf besar tanpa penukaran umlaut tersirat.
Atas ialah kandungan terperinci Mengapakah 'Ä' Menjadi 'AAO' dalam Carian MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!