\u4e16\u754c\u4e0a\u7684\u4e00\u5207\uff0c\u8fd8\u662f\u771f\u7684\u5417\uff1f
我用正则式从网络的源码中截取这一段,不管怎么转码都无效,但是如果我复制到
a=\u4e16\u754c\u4e0a\u7684\u4e00\u5207\uff0c\u8fd8\u662f\u771f\u7684\u5417\uff1f
System.out.println(a);
以上代码就可以通过
IDE是可以设置自己的默认编码的,Eclipse和Idea都支持;设置为UTF-8就好。######@胖猫 : 你发的这段代码没有意义好像,System.out.println(unDecodedString);直接就可以打出,你发的代码应该是linux下的(utf-8),在windows下(gbk)乱码。######我试过了才发帖的,会不会是你本地的编码不对?######我试过不行,就如同前面所说的应该\u其实是\u,转义后只有一个######
package moxia;
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader;
public class AsciitoNative { public static void main(String[] args) { String str = "\u4e16\u754c\u4e0a\u7684\u4e00\u5207\uff0c\u8fd8\u662f\u771f\u7684\u5417\uff1f"; FileOutputStream fos = null; BufferedReader br = null; File txt=new File("test.txt"); if(!txt.exists()){ try { txt.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } byte bytes[]=new byte[512]; bytes=str.getBytes(); int b=str.length();
try {
fos = new FileOutputStream(txt);
fos.write(bytes,0,b);
} catch (Exception e) {
e.printStackTrace();
} finally{
if(fos!=null){
try {
fos.close();
//txt.delete();
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
Process p=Runtime.getRuntime().exec("native2ascii.exe -reverse " + txt.getAbsolutePath());
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String n;
while ((n=br.readLine())!=null){
System.out.println(n);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(br!=null){
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
######ide环境编码是utf8,你程序单独运行环境编码不一定设定为utf8,因此需要显示设定,不然就会出现你那种乱码版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。