1、你把UTF-8编码的数据写进文件,你怎么知道打开的时候编辑器用的是GBK编码?一般编辑器都能智能识别编码的,如果它发现用GBK解码出错,那就会换一种编码尝试解码。
2、UTF-8数据打印到屏幕上乱码是因为你解码成字符串的时候指定了错误的编码
String str2 = new String(utf8Data);这样用的是默认编码,所以你这样就是用GBK编码去解码UTF-8,当然乱码
要这样指定编码才行:String str2 = new String(utf8Data, "UTF-8");