Laten we beginnen met een tabel die ik hier heb geplaatst . Er staat bijvoorbeeld dat E381yy de utf8-codering is voor Hiragana en E383yy Katakana (Japans) is. (Kanji is een andere zaak.)
Om te zien of een utf8-kolom Katakana bevat, doe je zoiets als
WHERE HEX(col) REGEXP '^(..)*E383'
Cyrillisch zou kunnen zijn
WHERE HEX(col) REGEXP '^(..)*D[0-4]'
Chinees is een beetje lastig, maar dit kan meestal werk voor Chinees (en Kanji?):
WHERE HEX(col) REGEXP '^(..)*E[4-9A]'
(Ik ga je titel wijzigen om het zoekwoord 'tekenset' te vermijden.)
West-Europa (inclusief, maar niet beperkt tot, Frans) C[23]
, Turks (ongeveer, en enkele anderen) (C4|C59)
, Grieks:C[EF]
, Hebreeuws:D[67]
, Indiaas, enz:E0
, Arabisch/Farsi/Perzisch/Urdu:D[89AB]
. (Altijd voorvoegsel ^(..)*
.
U zult merken dat deze niet per se erg specifiek zijn. Dit komt door overlappingen. Brits Engels en Amerikaans Engels kunnen niet worden onderscheiden, behalve door spelling van een paar woorden. Verschillende letters met accenten worden in Europa op verschillende manieren gedeeld. India heeft veel verschillende tekensets:Devanagari, Bengali, Gurmukhi, Gujarati, enz.; deze zijn waarschijnlijk te onderscheiden, maar het zou meer onderzoek vergen. Ik denk dat Arabisch/Farsi/Perzisch/Urdu één tekenset delen.
Nog wat:
| 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 |
Dus, voor DEVANAGARI, '^(..)*E0A[45]'