求:判断一个字符串(单词或者词组)是英文,还是中文的函数?
首先,有必要明确一点“基础知识”:对于英语单词或者词组而言,ANSI和UTF-8,是一毛一样的,无任何区别的;
换句话说,对于英文字符串而言,UTF-8完全兼容ANSI。
而,对于中文单字、词或者词组而言,ANSI和UTF-8差异巨大,是完全不同的两种编码,二者不兼容;
一个显而易见的差别:一个UTF-8汉字,一般是3字节、4字节或更多,而ANSI汉字则固定是2字节。
而,至于Unicode LE和BE,则相对简单些,字符串当中有0x00,极有可能是英文,否则视作汉字,估计八九不离十了。
千万不要试图用IsAlpha()、IsUpper()、IsLower()去判断中英文,因VFP自带函数不支持UTF-8,基本上无意义。
综上,楼主的问题似乎有点儿“变质”了。
说——
如何判断一个UTF-8字符串(单词或者词组)是英文,还是中文?
--------------------
PS:其实,还有更复杂的情形。比方说,Merry-Xmas、Merry X'mas、Tom's brother……也是纯英文,即使扫描整个字符串时,遇到了“-、'和空格”等等非大小写字母的字符。