# 泰语字符串字符分割 --- 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;
}
posted @ 2015-03-14 11:14  zyh_think  阅读(4264)  评论(0编辑  收藏  举报