Bem, vamos começar com uma tabela que coloquei aqui . Ele diz, por exemplo, que E381yy é a codificação utf8 para Hiragana e E383yy é Katakana (japonês). (Kanji é outra questão.)
Para ver se uma coluna utf8 contém Katakana, faça algo como
WHERE HEX(col) REGEXP '^(..)*E383'
O cirílico pode ser
WHERE HEX(col) REGEXP '^(..)*D[0-4]'
Chinês é um pouco complicado, mas isso pode geralmente trabalhar para chinês (e Kanji?):
WHERE HEX(col) REGEXP '^(..)*E[4-9A]'
(Vou mudar seu título para evitar a palavra-chave 'conjunto de caracteres'.)
Europa Ocidental (incluindo, mas não limitado a, francês)
C[23]
, turco (aprox e alguns outros) (C4|C59)
, grego:C[EF]
, hebraico:D[67]
, indiano, etc:E0
, árabe/farsi/persa/urdu:D[89AB]
. (Sempre prefixe com ^(..)*
. Você pode notar que estes não são necessariamente muito específicos. Isso ocorre por causa das sobreposições. O inglês britânico e o inglês americano não podem ser distinguidos, exceto pela ortografia de algumas palavras. Várias letras acentuadas são compartilhadas de várias maneiras na Europa. A Índia tem muitos conjuntos de caracteres diferentes:Devanagari, Bengali, Gurmukhi, Gujarati, etc.; estes são provavelmente distinguíveis, mas seriam necessárias mais pesquisas. Acho que árabe/farsi/persa/urdu compartilham um conjunto de caracteres.
Um pouco mais:
| 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 |
Então, para DEVANAGARI,
'^(..)*E0A[45]'