Vâng, hãy bắt đầu với một bảng tôi đã đặt trong tại đây . Ví dụ, nó nói rằng E381yy là mã hóa utf8 cho Hiragana và E383yy là Katakana (tiếng Nhật). (Kanji là một vấn đề khác.)
Để xem liệu cột utf8 có chứa Katakana hay không, hãy làm như
WHERE HEX(col) REGEXP '^(..)*E383'
Kirin có thể là
WHERE HEX(col) REGEXP '^(..)*D[0-4]'
Tiếng Trung hơi phức tạp nhưng điều này có thể thường là làm việc cho tiếng Trung (và chữ Kanji?):
WHERE HEX(col) REGEXP '^(..)*E[4-9A]'
(Tôi sẽ thay đổi Tiêu đề của bạn để tránh từ khóa 'bộ ký tự'.)
Tây Âu (bao gồm nhưng không giới hạn ở tiếng Pháp) C[23]
, Tiếng Thổ Nhĩ Kỳ (ước chừng và một số khác) (C4|C59)
, Tiếng Hy Lạp:C[EF]
, Tiếng Do Thái:D[67]
, Tiếng Ấn Độ, v.v.:E0
, Tiếng Ả Rập / tiếng Farsi / tiếng Ba Tư / tiếng Urdu:D[89AB]
. (Luôn luôn có tiền tố là ^(..)*
.
Bạn có thể nhận thấy rằng những điều này không nhất thiết phải rất cụ thể. Điều này là do chồng chéo. Tiếng Anh của người Anh và tiếng Anh của người Mỹ không thể phân biệt được ngoại trừ cách viết của một vài từ. Một số chữ cái có dấu được chia sẻ theo nhiều cách khác nhau ở Châu Âu. Ấn Độ có nhiều bộ ký tự khác nhau:Devanagari, Bengali, Gurmukhi, Gujarati, v.v ...; chúng có thể phân biệt được, nhưng sẽ cần nhiều nghiên cứu hơn. Tôi nghĩ tiếng Ả Rập / tiếng Farsi / tiếng Ba Tư / tiếng Urdu có chung một bộ ký tự.
Một số khác:
| 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 |
Vì vậy, đối với DEVANAGARI, '^(..)*E0A[45]'