第一:流读取文件,具有转换编码功能的有:OutputStreamWriter和InputStreamReader,构造器有如:
InputStreamReader(InputStream in, String charsetName)
创建使用指定字符集的 InputStreamReader。
OutputStreamWriter(OutputStream out, String charsetName)
创建使用指定字符集的 OutputStreamWriter。
第二:处理字符串编码问题:
1、重新对获取的字符串进行编码:Byte[] bytes = str.getBytes(String encodeCharsetName);
2、重新对bytes进行解码,创建新的字符串对象:str = new String(Byte[] bytes,String decodeCharsetName);
一般结合使用:str = new String(str.getBytes(String encodeCharsetName),String decodeCharsetName);
例如:resultName=new String(username.getBytes("ISO-8859-1"),"UTF-8");
还可以加入判断:
if(!Charset.forName("gbk").newEncoder().canEncode(str)){
str = new String(str.getBytes("ISO-8859-1"),"
InputStreamReader(InputStream in, String charsetName)
创建使用指定字符集的 InputStreamReader。
OutputStreamWriter(OutputStream out, String charsetName)
创建使用指定字符集的 OutputStreamWriter。
第二:处理字符串编码问题:
1、重新对获取的字符串进行编码:Byte[] bytes = str.getBytes(String encodeCharsetName);
2、重新对bytes进行解码,创建新的字符串对象:str = new String(Byte[] bytes,String decodeCharsetName);
一般结合使用:str = new String(str.getBytes(String encodeCharsetName),String decodeCharsetName);
例如:resultName=new String(username.getBytes("ISO-8859-1"),"UTF-8");
还可以加入判断:
if(!Charset.forName("gbk").newEncoder().canEncode(str)){
str = new String(str.getBytes("ISO-8859-1"),"