原创文章,转载请注明出处
用jacob将wps转html的时候,Java读入转后的html,发现有个别生僻字出现乱码,
解决方法:
因为WPS默认转成html是gb2312编码的,而gb2312不支持一些生僻字,所以会出现乱码,
Java读入的时候由gb2312换成用gbk编码读入即可
InputStreamReader read = new InputStreamReader(new FileInputStream(htmlFile), "gbk");
附:gb2312编码对应的中文大全网站,ctrl + f 可以搜索
http://www.knowsky.com/resource/gb2312tbl.htm
知识扩展:
(1)GB2312 : 当中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有6000多个常用汉字需要保存,于是想到把那些ASCII码中127号之后的奇异符号们直接取消掉, 规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(称之为高字节)从0xA1用到0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。这种汉字方案叫做 "GB2312"。GB2312 是对 ASCII 的中文扩展。兼容ASCII。
(2)GBK : 但是中国的汉字太多了,我们很快就就发现有许多人的人名没有办法在这里打出来,不得不继续把 GB2312 没有用到的码位找出来用上。后来还是不够用,于是干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。结果扩展之后的编码方案被称为 “GBK” 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。
更多可以去https://www.cnblogs.com/shitianzeng/articles/5369092.html了解