Bene, iniziamo con una tabella che ho inserito qui . Dice, ad esempio, che E381yy è la codifica utf8 per Hiragana e E383yy è Katakana (giapponese). (Kanji è un'altra questione.)
Per vedere se una colonna utf8 contiene Katakana, fai qualcosa come
WHERE HEX(col) REGEXP '^(..)*E383'
Il cirillico potrebbe essere
WHERE HEX(col) REGEXP '^(..)*D[0-4]'
Il cinese è un po' complicato, ma potrebbe essere solitamente lavora per il cinese (e il kanji?):
WHERE HEX(col) REGEXP '^(..)*E[4-9A]'
(Cambierò il tuo titolo per evitare la parola chiave "set di caratteri".)
Europa occidentale (incluso, ma non limitato al francese) C[23]
, turco (circa e alcuni altri) (C4|C59)
, greco:C[EF]
, ebraico:D[67]
, indiano, ecc:E0
, arabo/farsi/persiano/urdu:D[89AB]
. (Prefisso sempre ^(..)*
.
Potresti notare che questi non sono necessariamente molto specifici. Ciò è dovuto alle sovrapposizioni. L'inglese britannico e l'inglese americano non possono essere distinti se non per l'ortografia di alcune parole. Diverse lettere accentate sono condivise in vari modi in Europa. L'India ha molti set di personaggi diversi:Devanagari, bengalese, Gurmukhi, Gujarati, ecc.; questi sono probabilmente distinguibili, ma ci vorrebbero più ricerche. Penso che arabo/farsi/persiano/urdu condividano un set di caratteri.
Alcuni di più:
| 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 |
Quindi, per DEVANAGARI, '^(..)*E0A[45]'