GBK编码文件下就一个中文字符“我”
现在字节流读取它的两个字节。
在平台UTF-8编码下显现的乱码字符getbytes后,得到6个字节。
就是这里不清楚,GBK的两个字节怎么就被UTF-8解析成字符了(尽管是乱码)
然后再生成UTF-8的字节,怎么就不一样了呢???
------解决思路----------------------
不清楚你说的 UTF-8 解析 GBK 是什么意思。
编码转换是先把数据读取成字符再编码成 byte.
比如:
// 别人发送给你时用 GBK 编码:
String data = "这是一句中文";
byte[] GBK = data.getBytes("GBK");
socketOutputStream.write(GBK);
// 你收到后:
byte[] received = socketInputStream....();
String decoded = new String(received, "GBK"); // 用对方的编码方式来解码
byte[] encoded = decoded.getBytes("UTF-8"); // 再编码成 UTF-8 转发给第3方。