RT

解决方案 »

  1.   

    \u4e00-\u9fa5    maybe
      

  2.   

    因为Unicode 也有版本区别,不知道 jdk1.4,1.5.....及后面的VM版本中,中文范围
      

  3.   


    not maybe  need  exact
      

  4.   

    而且还碰到个怪问题,本地是windows的系统,服务器是unix的windows 下 "中文".getBytes().length = 2  "中文".length = 4UNIX    下 "中文".getBytes().length = 2  "中文".length = 2不知道各位遇到过这种情况吗
      

  5.   

    Go to the URL:
    http://www.xlmz.net/forum/viewthread.php?tid=2036
      

  6.   

    用下面这段代码可以找到 Unicode 所定义的标点符号,因为 Unicode 不可能定义中文的标点,
    因此,至于哪些是中文标点你可以从下面输出的数据中人工判定。import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;public class Test1 {    public static void main(String[] args) {
            List<String> list = getAllUnicode("P", "unicodedata.txt");
            for(String str : list) {
                if(n <= 0x10000) {
                    System.out.println(str + "  " + (char)n);
                }
            }
        }
        
        public static List<String> getAllUnicode(String propertyPrefix, String filename) {
            BufferedReader br = null;
            List<String> list = new ArrayList<String>();
            try {
                br = new BufferedReader(new FileReader(filename));
                for(String str = null; (str = br.readLine()) != null; ) {
                    String[] strs = str.split(";");
                    if(strs[2].startsWith(propertyPrefix)) {
                        list.add(strs[0]);
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return list;        
        }
    }unicodedata.txt 文件在这里下载:
    http://www.unicode.org/Public/UNIDATA/UnicodeData.txt这是所有 Unicode 字符的字符属性描述文件,第一列是 Unicode 码,第二列是字符名称,第三列是字符子属性。
    第三列以 P 开头的都是标点符号。一共有 510 个输出,不过有大部分在我们的机器上是无法显示的,并且在上面的代码中还把超过
    U+FFFF 的字符都不让输出了,现在的系统平台基本上不支持 U+FFFF 以上的字符,这样就少很多。如果你要是中文标点,我想中文应该就是占两个字节的全角标点吧,那这样改一下:    public static void main(String[] args) {
            List<String> list = getAllUnicode("P", "f:/unicodedata.txt");
            int count = 0;
            for(String str : list) {
                int n = Integer.parseInt(str, 16);
                if(n <= 0x10000) {
                    int len = String.valueOf((char)n).getBytes().length;
                    if (len > 1) {
                        System.out.println(str + "  " + (char)n);
                        count++;
                    }
                }
            }
            System.out.println("Count: " + count);
        }总共有 106 个,不知道能否满足要求?
      

  7.   

    if(n <= 0x10000) {  请改为 if(n < 0x10000) {
      

  8.   

    谢谢楼上各位了,还是没有满意的答案我把应用场景给各位说下吧我要将数据库(oracle)里面的繁体资料根据需要繁简转换为提高效率,在转换的时候,有中文的列才转换所以标点符号基本上可以忽略,所以说"字段值".getBytes().length = 6  "字段值".length = 3 ,就可判断字段值中是否包含中文最关键的是:本地可以,到服务器上就不行了,经过log记录分析,发现在服务器上 "字段值".getBytes().length = 3问题就在这
      

  9.   

    "字段值".getBytes().length = 6  "字段值".length = 3 ,就可判断字段值中是否包含中文这种判断错得离谱了,中文根本就不是这样判断的!
      

  10.   

    String str = "我爱你";
    System.out.println(str.charAt(0) > 128 ? "Yes" : "No");用这个是可以的..判断中文..
      

  11.   

    打开一个WORD文档,在空白处单击右键,选择符号,在弹出的对话框里可以看到所有符号和部分汉字对应的Unicode、ASCII码。
      

  12.   


    是字符串包含中文,不是首字符包含中文,你其实是判断ASCII码来判断的,还是有你自己说的问题,什么日文韩文的
    请各位看清楚了,资料里面文字只会有中文