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"));


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值