String newstr = new String(oldstr.getBytes(), "UTF-8");
[size=medium]java中的String类是按照unicode进行编码的,当使用String(byte[] bytes, String encoding)构造字符串时,encoding所指的是bytes中的数据是按照那种方式编码的,而不是最后产生的String是什么编码方式,换句话说,是让系统把bytes中的数据由encoding编码方式转换成unicode编码。如果不指明,bytes的编码方式将由jdk根据操作系统决定。[/size]
[size=large][color=red]注意:在读写文件的时候:[/color][/size]
[size=medium] 当我们从文件中读数据时,最好使用InputStream流方式,然后采用String(byte[] bytes, String encoding)指明文件的编码方式。不要使用Reader方式,因为Reader方式会自动根据jdk指明的编码方式把文件内容转换成unicode 编码。[/size]