我从网页中抓取了一段文字存储在变量temp中,打印temp的内容如下:
  "\u4e30\u53f0\u533a\u5b8b\u5e84\u8def11\u53f7(\u8fd1\u7269\u7f8e\u8d85\u5e02)"
我通过各种转换都不行,如temp=new String(temp.getBytes("ISO8859-1"),"utf-8");
结果打印还是上面的字符。
    但是使用System.out.println("\u4e30\u53f0\u533a\u5b8b\u5e84\u8def11\u53f7(\u8fd1\u7269\u7f8e\u8d85\u5e02)");竟然能直接显示我想要的中文。
     求高手,这是为什么?
     有什么办法能够转换成utf-8或gbk的编码吗?

解决方案 »

  1.   

    很明显,楼主在字符串中用了\而不是\\,所以我猜测\uxxxx会自动进行转码显示?就和\\自动显示为\一样,我找找资料去,等会再来。
      

  2.   

    java会自动对\udddd进行转义,类似于将\b转义为空格等。属于转义的知识。但谢谢楼主让我学到了很多东西。
    找的几个常见转义,给大家看看。//内容来自于网上,非本人原创美元符号的转义:$ ==> u0024 
    乘方符号的转义:^ ==> u005E 
    左大括号的转义:{ ==> u007B 
    左方括号的转义:[ ==> u005B 
    左圆括号的转义:( ==> u0028 
    竖线的转义:| ==> u007C 
    右圆括号的转义:) ==> u0029 
    星号的转义:* ==> u002A 
    加号的转义:+ ==> u002B 
    问号的转义:? ==> u003F 
    反斜杠的转义: ==> u005C
      

  3.   

    用jdk的工具 native2ascii 反转一下
      

  4.   

    JDK自带的,在bin目录下有个native2ascii.exe 你找下就知道了,
    如下:C:\Documents and Settings\Administrator>native2ascii -reverse
    \u4e30\u53f0\u533a\u5b8b\u5e84\u8def11\u53f7(\u8fd1\u7269\u7f8e\u8d85\u5e02)
    丰台区宋庄路11号(近物美超市)
    \u4e30\u53f0\u533a\u5b8b\u5e84\u8def11\u53f7(\u8fd1\u7269\u7f8e\u8d85\u5e02)
    丰台区宋庄路11号(近物美超市)
    命令如下:
    用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]
      

  5.   

    用System.out.println(new String(str.getBytes("utf-8"),"utf-8"));
      

  6.   

    \uxxxx是unicode的转义字符。估计楼主原来截取的字符是有两个反斜杠的\\uxxxx,\\是转义反斜杠的。