String类给我们提供了方法去独立的配置字符串的编码格式,那就是getBytes方法以及通过new String(byte[], charsetName)方法用指定的字符集来还原之前的编码格式

getBytes()

getBytes()方法如果不指定字符集,则得到的是一个操作系统默认的编码格式的字节数组;如果指定字符集,则得到的是在指定字符集下的字节数组

byte[] b_gbk = "你好".getBytes("gbk");

byte[] b_utf8 = "你好".getBytes("utf-8");

byte[] b_iso88591 = "你好".getBytes("iso-8859-1");

初始化一个字符集时定义

与getBytes()方法相反,可以通过new String(byte[], charsetName)方法用指定的字符集来还原这个"你好"

String s_gbk = new String(b_gbk, "gbk");

String s_utf8 = new String(b_utf8, "utf-8");

String s_iso88591 = new String(b_iso88591, "iso-8859-1");

所以为了避免一些特殊情况下不兼容导致无法转换的情况我们一般结合两种修改编码格式的方法来使用,如下

public class FileIOTest {

public static void main(String[] args) throws Exception{

//文件路劲

String path="我爱你.txt";

System.out.println(path);

path=new String (path.getBytes("gbk"),"utf-8");

System.out.println(path);

}

}

上述代码可以修改某个字符串的编码格式,先将path设置为gbk格式,再设置成utf-8格式