乱码的本质就是:读取二进制的时候采用的编码和最初将字符转换成二进制时的编码不一致。
UTF-8和GBK是两套中文支持较好的编码,所以经常会进行它们之间的转换.
1.UTF-8转换成GBK:鎴戜滑鏄腑鍥戒汉UTF-8转换成GBK再转成UTF-8:我们是中国人
import java.io.UnsupportedEncodingException;
public class EncodingTest {
public static void main(String[] args) throws UnsupportedEncodingException {
String srcString = "我们是中国人";
String gbk2UtfString = new String(srcString.getBytes("GBK"), "UTF-8");
System.out.println("GBK转换成UTF-8:" + gbk2UtfString);
String gbk2Utf2GbkString = new String(gbk2UtfString.getBytes("UTF-8"), "GBK");
System.out.println("GBK转换成UTF-8再转成GBK:" + gbk2Utf2GbkString);
}
}
2.以GBK编码再以UTF-8解码,再以UTF-8编码,再以GBK解码。
这次的运行结果是:
GBK转换成UTF-8:GBK转换成UTF-8再转成GBK:锟斤拷锟斤拷锟斤拷锟叫癸拷锟斤拷
import java.io.UnsupportedEncodingException;
public class EncodingTest {
public static void main(String[] args) throws UnsupportedEncodingException {
String srcString = "我们是中国人";
String gbk2UtfString = new String(srcString.getBytes("GBK"), "UTF-8");
System.out.println("GBK转换成UTF-8:" + gbk2UtfString);
String gbk2Utf2GbkString = new String(gbk2UtfString.getBytes("UTF-8"), "GBK");
System.out.println("GBK转换成UTF-8再转成GBK:" + gbk2Utf2GbkString);
}
}
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 engola@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.3kemao.com/n/13594.html