今天,一位同事遇到一个编码问题,如下
运行环境:Centos 6.* 【LANG zh_CN.GB18030】
编程语言:java
需求描述:从GBK编码的db2数据库中读取数据,并通过java语言生成一个UTF-8格式的XML文件,然后再通过java进行zip压缩;
问题描述:生成的XML文件部分中文尾部乱码;
其实,我对java不熟,所以也到网上找各种资料,寻求的问题是【java GBK转UTF8】:
有这样的一篇回答我觉得讲的蛮清晰的:
作者:温悦
链接:https://www.zhihu.com/question/20361462/answer/14899233
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【内容如下】
好吧,看来问的人和回答的人都不一定清楚什么是“编码和编码格式”,以及如何理解“java中字符串的编码”;
首先明确几点:unicode是一种“编码”,所谓编码就是一个编号(数字)到字符的一种映射关系,就仅仅是一种一对一的映射而已,可以理解成一个很大的对应表格GBK、UTF-8是一种“编码格式”,是用来序列化或存储1中提到的那个“编号(数字)”的一种“格式”;
GBK和UTF-8都是用来序列化或存储unicode编码的数据的,但是分别是2种不同的格式; 他们俩除了格式不一样之外,他们所关心的unicode编码范围也不一样,utf-8考虑了很多种不同国家的字符,涵盖整