java中string使用unicode模式编码(据说是utf-16)而gbk完全是不一样的编码模式
GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:
以下是gbk与utf-8之间的转换
作者:知乎用户
链接:https://www.zhihu.com/question/20361462/answer/32189517
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/20361462/answer/32189517
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
package url;
import java.io.UnsupportedEncodingException;
public class GBK2UTF8 {
public static void main(String[] args) throws UnsupportedEncodingException {
String chinese = "中文";//java内部编码
String gbkChinese = new String(chinese.getBytes("GBK"),"ISO-8859-1");//转换成gbk编码
String unicodeChinese = new String(gbkChinese.getBytes("ISO-8859-1"),"GBK");//java内部编码
System.out.println(unicodeChinese);//中文
String utf8Chinese = new String(unicodeChinese.getBytes("UTF-8"),"ISO-8859-1");//utf--8编码
System.out.println(utf8Chinese);//乱码
unicodeChinese = new String(utf8Chinese.getBytes("ISO-8859-1"),"UTF-8");//java内部编码
System.out.println(unicodeChinese);//中文
}
}
未完待续