java 转码很简单。
[1]要搞清楚转面源的编码,保证读取进来的字符串是正确的。
[2]字符串被正确读取后,保存在java中的就是unicode字符集的序列码了。
[3]gbrs.getBytes("UTF-8") 写入目标编码。这一步其实就已经正确的编码了。返回的数组就是编好码的数组
[4]最后用真确的编码转换成字符串
[1]要搞清楚转面源的编码,保证读取进来的字符串是正确的。
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(f), "GB2312"));
[2]字符串被正确读取后,保存在java中的就是unicode字符集的序列码了。
[3]gbrs.getBytes("UTF-8") 写入目标编码。这一步其实就已经正确的编码了。返回的数组就是编好码的数组
public static void printBytes(byte[] bytes){
for (int i = 0; i < bytes.length; i++) {
int j = (int) bytes[i];
System.out.println("coding: ------------------"
+ Integer.toHexString(j));
}
System.out.println();
}
printBytes(gbrs.getBytes("GB2312"));
printBytes(gbrs.getBytes("UTF-8"))
[4]最后用真确的编码转换成字符串
System.out.println(Charset.availableCharsets());
File f = new File("/home/linwei007/temp/aa");
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(f), "GB2312"));
String gbrs = in.readLine();
System.out.println(gbrs);
printBytes(gbrs.getBytes("GB2312"));
printBytes(gbrs.getBytes("UTF-8"));
System.out.println(new String(gbrs.getBytes("UTF-8"),"UTF-8"));