爲GB2312試想一下,在代碼波紋管UTF8轉換在Java中
try {
String str = "上海上海";
String gb2312 = new String(str.getBytes("utf-8"), "gb2312");
String utf8 = new String(gb2312.getBytes("gb2312"), "utf-8");
System.out.println(str.equals(utf8));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
打印假的!
我運行此代碼都在JDK7和jdk8和IDE的我的代碼風格是UTF8。
任何人都可以幫助我嗎?
java是unicode 16,而字符串類沒有字符代碼,這意味着不管你讀的是什麼類型的文件,java中帶有某些字符的字符串總是unicode –
你的代碼是沒有意義的。你把一個UTF-16字符串(Java的店字符串如何),並將其編碼爲UTF-8字節流,然後解碼該字節流**彷彿**它是GB2312編碼。你最終得到垃圾!你可能意味着做,讀取(從文件例如)一個UTF-8編碼的字節流和輸出GB2312編碼的字節流(例如,另一個文件),但是這不是你在做什麼。 – Andreas