1.泰語編碼格式
泰語用的編碼格式是:ISO 8859-11,這個是Latin編碼系列,是從"ISO-8859-1"發展過來的,采用的是8bit一個字,所以泰語中的英文字母或者數字還是1個字節,而泰語中類似於"ฉันแค่เดินผ่านมา"的編碼,每個文字的ASCII碼是從0xE0開始,每個字符占據3個字節。
2.字符ASCII碼拆分
"ฉั" ----> "E0 B8 89 E0 B8 B1"
"น" ----> "E0 B8 99"
......
發現這個規律后,在csdn上看到了一篇文章,他把核心的內容提了下,根據他的內容我實現了下代碼,大致上可以把泰語能夠按照單詞划分出來
3.上代碼
int str_thai_char_len(const char *src)
{
unsigned char ch = *src;
if(ch != 0xE0)
return 1;
int len = 3;
const char *tempSrc = src + len;
ch = *tempSrc;
while(ch == 0xE0)
{
unsigned char ch1 = *(src + len + 1);
unsigned char ch2 = *(src + len + 2);
if((ch1 == 0xb8 && (ch2 == 0xb1 || (ch2 >= 0xb3 && ch2 <= 0xba)))
||(ch1==0xb9 && ch2>=0x87 && ch2<=0x8e))
{
len += 3;
ch = *(tempSrc + len);
continue;
}
break;
}
return len;
}
