Cóż, zacznijmy od tabeli, którą umieściłem tutaj . Mówi na przykład, że E381yy to kodowanie utf8 dla Hiragana, a E383yy to Katakana (japoński). (Kanji to inna sprawa.)
Aby sprawdzić, czy kolumna utf8 zawiera Katakanę, wykonaj coś takiego
WHERE HEX(col) REGEXP '^(..)*E383'
Cyrylica może być
WHERE HEX(col) REGEXP '^(..)*D[0-4]'
Chiński jest trochę skomplikowany, ale może zazwyczaj praca dla języka chińskiego (i Kanji?):
WHERE HEX(col) REGEXP '^(..)*E[4-9A]'
(Zamierzam zmienić Twój tytuł, aby uniknąć słowa kluczowego „zestaw znaków”).
Europa Zachodnia (w tym między innymi francuski) C[23]
, turecki (w przybliżeniu i kilka innych) (C4|C59)
, grecki:C[EF]
, hebrajski:D[67]
, indyjski itp.:E0
, arabski/farsi/perski/urdu:D[89AB]
. (Zawsze prefiks z ^(..)*
.
Możesz zauważyć, że niekoniecznie są one bardzo szczegółowe. Dzieje się tak z powodu nakładania się. Brytyjski angielski i amerykański angielski nie można odróżnić inaczej niż przez pisownię kilku słów. Kilka liter z akcentem jest wspólnych w Europie na różne sposoby. Indie mają wiele różnych zestawów znaków:dewanagari, bengalski, gurmukhi, gudżarati itd.; są one prawdopodobnie rozróżnialne, ale wymagałoby to dalszych badań. Myślę, że arabski/farsi/perski/urdu mają jeden zestaw znaków.
Jeszcze więcej:
| 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 |
Tak więc, dla DEVANAGARI, '^(..)*E0A[45]'