如何判断一个字符串的内容是什么语言的?我只能判断出中文和英文的区别,其他语言呢?怎么判断?
或者换个说法,谁知道其他语言的码值范围?

解决方案 »

  1.   

    to:cnjj(ACA)
    那就把问题修改为:如何判断一个字符是那种语言?
      

  2.   

    可能先要确定该字符串使用的哪种字符编码,utf-8,gb2312?在这些编码中,汉字是用一段连续的区间,其他的泰文,韩文等也是这样
      

  3.   

    to:yan63(silence like a cancer grows)
    如果知道用了那种编码,就基本已经知道是什么语言了(Unicode除外)。
    现在的可能是采用了不同的本地编码方式,如简体中文用了gb2312,繁体中文用了big5。
    那些西欧的本地编码方式是什么,我都还不知道。
    :(
      

  4.   

    to:bhujm() 
    这个我初步认为应该根据编码来判断,虽然现在的是日本和简体中文一样,但我认为用asc取出的值应该是不同的。我试过gb2312和big5,即使相同的字的编码是不同的。
    现在我苦恼在使用编码判断时,不知道其他语言的编码范围及其规则。
    所有看看有没有那位能提供其他的判断方法。
      

  5.   

    正则表达式可以。但是只能是枚举自己已知内容的unicode字符。
    中文:[\u4E00-\u9FA5],匹配到就是中文否则再查
      

  6.   

    不过判断语言文化可以用
    Currentculture
    msdn里搜索:culture
      

  7.   

    建议用UNCODE玛来判断全世界的语言都能判断的具体怎么做我不太清楚
      

  8.   

    UNCODE 好像只有这编码才有可能...
      

  9.   

    如果是正确的字符串,它就是Unicode编码
    字符串的定义就是Unicode字符的序列~
      

  10.   

    楼主可以这样``把他们都转成unicode编码``再做个表,存放每个国家的的字符的范围,哈``虽然耗时了一点``不过相信这个表有些网站是有的``你再写个程序,转换成你要的格式就是了```
      

  11.   

    楼主还不清楚字符串编码格式问题。如果仅仅有一个字符串,本质上和二进制数没什么区别,你需要知道这个字符串的编码格式才能判断这个字符串的内容,进而判断字符串的语言。相同的字符串采用不同编码方式编码的结果是不一样的。反过来,相同的两个字节,用gbk和unicode方式解码出来的内容是不一样的,所以你要知道你的这个字符串采用什么编码格式才能进一步判断是什么语言
      

  12.   

    Unicode应该好一些,各个国家的语言都是在一个区域范围内的,看看字符串所在的区域就知道哪个国家的了
      

  13.   

    多谢大家的参与讨论。现在我的基本思路是这样的:
    首先,先判断是否为双字节编码?(通过高位是否为1判断)
    如果不是双字节编码,则利用word的CheckSpelling功能,轮流测试几种语言,如果某种语言的测试都能通过,则判断为该种语言。
    如果是双字节编码,再进一步根据编码规则进行判断(好像gb2312和big5就是第二个字节的高位规则不同)。另外,上面提到转换成Unicode编码的各位,我不清楚在不知道原来编码格式的情况下能正确转换成Unicode吗?如果可以的话,麻烦说详细一点。多谢。
      

  14.   

    Unicode 编译范围判定~~但没仔细研究过各种语言的范围段~~
      

  15.   

    System.Text.Encoding.Unicode.GetString(buf);
    把你的文字轉換成byte[]型的就可以了。
    但是需要弄清楚的是﹕如果你需要轉換的內容是一個string,string本身是不含格式的﹐需要用指定的語言格式才能轉換成正確的byte[].
    沒有辦法判斷﹐只能轉換成統一格式。因為不同的語言是可以混合使用的﹐而且有些是沒有明確切確的語言區分的﹐如空格和數字等
      

  16.   

    呵呵,看来没有标准答案了。
    我找到一种方法:
    http://blog.i5un.com/item/21
    这也是Mozilla判断语言的方法,有兴趣的可以去参考一下。
    再次多谢各位。结贴