小第现在想要判断MYSQL数据中NAME的值,如果是中文的不要,如果是英文的提出来存到另一个表里面。怎么来判断中文呢?请教各位大侠,谢谢!分数可以多给,谢谢!

解决方案 »

  1.   

    那就做一函数取一个字符,判断ASCII是不是<=128 && >=0,超出这范转,就当是汉字...
      

  2.   

    yxtyxt3311(韬) ( ) 信誉:100 是错误的,
    因为JAVA采用UNICODE编码在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围是在0080-07FF之间,因此是2个字节表示(但这两个字节和GB编码的两个字节是不同的),用专门的Unicode处理类可以对UTF编码进行处理。 
      

  3.   

    你的是什么库?如果是sqlserver的话,就不可能是gb2312,要不就是乱码
      

  4.   

    jeader(http://blog.csdn.net/jeader) 是正解
      

  5.   

    我这有个笨法子,不知道行不行:String s = "中文";byte[] a = s.getBytes();
    for (int i=0; i<a.length; i++){
      if (a[i] == 63){
        System.out.println("s不是英文");
        break;
      }
    }
      

  6.   

    sorry改一下:byte[] a = s.getBytes("ASCII");
      

  7.   

    先打出每个字符的unicode码看看:
    首先要明确什么是汉字,汉字的unicode有个范围,剩下的自己去分析了
    public class Test {
    public static void main(String[] args){
    String text = "adads中w打发上dsfds";      char[] chars = text.toCharArray();
          for (int i = 0; i < chars.length; i++) {
          System.out.println(chars[i] + "---unicode---" + Integer.toHexString(chars[i]));}}
    近似的:
    String text = "adads中打发上dsfds";      char[] chars = text.toCharArray();
          for (int i = 0; i < chars.length; i++) {
            if (chars[i] > 256)
               System.out.println("ch:" + chars[i] );
            else
               System.out.println("en:" + chars[i] );
          }
      

  8.   

    用正则表达式,参考Java API Docs: java.util.regex.PatternSystem.out.println(Pattern.compile("[\u4e00-\u9fa5]").matcher("a").find());//[\u4e00-\u9fa5] 匹配中文字符的正则表达式
    //"a" 你想判断的字符