本帖最后由 bzwc830819 于 2010-09-29 08:38:38 编辑

解决方案 »

  1.   

    把a打印出来你就知道了,\u000B是Unicode编码,代表一个字符。
      

  2.   

    unicode编码本身你要正则替换?这个有点儿麻烦吧?
    因为java解释unicode并不是你看到的字面上的\u000B这样的东西
      

  3.   

    String a = "aaa\u000Bbbb";
    改成
    String a = "aaa\\u000Bbbb";
      

  4.   

    String a = "aaa\\\\u000Bbbb";
      

  5.   

    问题就是不能改,因为从数据库里取出来的值就是"aaa\u000Bbbb";
      

  6.   

    解决了,将
         String a="aaa\u000Bbbb";
         String reg="[\\\\]u00[0~1]\\w";
         System.out.println(a.replaceAll(reg, ""));
    改成:
         String a="aaa\u000Bbbb";
         String reg="[\u0000-\u001F]";
         System.out.println(a.replaceAll(reg, ""));
    这样就可以了 
      

  7.   

    你上面的测试代码中的字面量"aaa\\u000Bbbb"和数据库中取出的"aaa\u000Bbbb"是等效的。
    只要测试
    String a = "aaa\\u000Bbbb";
    通过,String a = getFromDb();//aaa\u000Bbbb
    就一定会成功。数据库可以么?
      

  8.   

    从数据库取出来的就是aaa\u000Bbbb,在使用之前需要将其中的UNICODE编码去掉,解决了,还是谢谢你
      

  9.   

    还有 为什么 A和a在UNICODE中的编码是一样的吗?我测试的是一样的,怎么回事?
      

  10.   

    A \u0041
    a \u0061
    不一样。