Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara mengidentifikasi bahasa di kolom utf-8 di MySQL

Baiklah, mari kita mulai dengan tabel yang saya masukkan di sini . Dikatakan, misalnya, bahwa E381yy adalah pengkodean utf8 untuk Hiragana dan E383yy adalah Katakana (Jepang). (Kanji adalah masalah lain.)

Untuk melihat apakah kolom utf8 berisi Katakana, lakukan sesuatu seperti

WHERE HEX(col) REGEXP '^(..)*E383'

Sirilik mungkin

WHERE HEX(col) REGEXP '^(..)*D[0-4]'

Bahasa Cina agak rumit, tapi ini mungkin biasanya bekerja untuk bahasa Cina (dan Kanji?):

WHERE HEX(col) REGEXP '^(..)*E[4-9A]'

(Saya akan mengubah Judul Anda untuk menghindari kata kunci 'set karakter'.)

Eropa Barat (termasuk, namun tidak terbatas pada, Prancis) C[23] , Turki (kira-kira, dan beberapa lainnya) (C4|C59) , Yunani:C[EF] , Ibrani:D[67] , India, dll:E0 , Arab/Farsi/Persia/Urdu:D[89AB] . (Selalu awalan dengan ^(..)* .

Anda mungkin memperhatikan bahwa ini belum tentu sangat spesifik. Ini karena tumpang tindih. Bahasa Inggris British dan Bahasa Inggris Amerika tidak dapat dibedakan kecuali dengan ejaan beberapa kata. Beberapa huruf beraksen dibagikan dalam berbagai cara di Eropa. India memiliki banyak set karakter yang berbeda:Devanagari, Bengali, Gurmukhi, Gujarati, dll.; ini mungkin dapat dibedakan, tetapi akan membutuhkan lebih banyak penelitian. Saya rasa bahasa Arab/Farsi/Persia/Urdu memiliki satu set karakter.

Beberapa lagi:

| SAMARITAN                     | E0A080        | E0A0BE        |
| DEVANAGARI                    | E0A480        | E0A5BF        |
| BENGALI                       | E0A681        | E0A7BB        |
| GURMUKHI                      | E0A881        | E0A9B5        |
| GUJARATI                      | E0AA81        | E0ABB1        |
| ORIYA                         | E0AC81        | E0ADB1        |
| TAMIL                         | E0AE82        | E0AFBA        |
| TELUGU                        | E0B081        | E0B1BF        |
| KANNADA                       | E0B282        | E0B3B2        |
| MALAYALAM                     | E0B482        | E0B5BF        |
| SINHALA                       | E0B682        | E0B7B4        |
| THAI                          | E0B881        | E0B99B        |
| LAO                           | E0BA81        | E0BB9D        |
| TIBETAN                       | E0BC80        | E0BF94        |

Jadi, untuk DEVANAGARI, '^(..)*E0A[45]'




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HAPUS semua di mana batasan kunci asing MySQL tidak gagal

  2. Cara menggabungkan dua tabel menggunakan daftar yang dipisahkan koma di bidang gabungan

  3. Apakah mysql_real_escape_string() rusak?

  4. Penyeimbangan Beban PostgreSQL &Penyempurnaan ProxySQL - ClusterControl 1.5

  5. jarak hamming mysql antara dua phash