# 泰語字符串字符分割 --- UTF-8編碼格式


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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM