GBK与GB2312 解决GBK转UTF-8部分字符乱码

GBK是对GB2312的扩展,添加了一些GB2312不支持的繁体字符。我通常情况下对二者进行混用,不加以区分。最近出现了问题,一个文本本来是GBK格式的,我将其转换成UTF-8过程后,一些字符出现了乱码。原因是我读的时候是按照GB2312的编码读的,这样,一些特殊字符,例如中文的空格( )和中文的横杠(-),这两个字符要比英文的空格和横杠宽一点点,其编码是不一样的,而这两个字符是不被GB2312支持的,因此出现了乱码。

解决办法:

读入GBK或者GB2312格式的文本时统一选择GBK方式读入,然后再保存为UTF-8,这样就不会出错。

			BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
			BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"));


你可能感兴趣的:(常用技巧)