public class characterEncoding {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
byte [] a="我爱中国".getBytes();
byte [] b="我爱中国".getBytes("iso-8859-1");
String str_gbk=new String(b, "gbk");
//str_iso为什么是乱码?
String str_iso=new String(b, "iso-8859-1");
String str_default=new String(a);
System.out.println("str_gbk="+str_gbk);
System.out.println("str_iso="+str_iso);
System.out.println("str_default="+str_default);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
乱码编码
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
byte [] a="我爱中国".getBytes();
byte [] b="我爱中国".getBytes("iso-8859-1");
String str_gbk=new String(b, "gbk");
//str_iso为什么是乱码?
String str_iso=new String(b, "iso-8859-1");
String str_default=new String(a);
System.out.println("str_gbk="+str_gbk);
System.out.println("str_iso="+str_iso);
System.out.println("str_default="+str_default);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
乱码编码
以ISO-8859-1编码的文本,都以bytes[]的形式保存,若要显示中文,只需以显示平台的默认编码格式进行解码即可。若仍然以ISO-8859-1格式解码,得到的中文字符肯定是乱码,因为ISO-8859-1自身不能显示中文。
看完理解的不是很透彻,以为只要编码和解码用的格式一样即可,没想过某种格式是不是支持中文,非常感谢