在实现一个html转pdf的功能的时候碰到的,因为是直接下载了一个工具,然后通过调用命令来执行转pdf的功能。所以它的inputStream是用的cmd窗口的字符集编码的,windows默认是GBK。本来是使用Charset.defaultCharset()获得的字符集来解码的,但是乱码了。
Charset.defaultCharset()是拿file.encoding的字符集,而file.encoding 是在jvm启动时就被设置了的,默认应该是系统的字符集,但是好像ide会自动修改这个属性为main入口文件的字符集(这个不确定),反正最后file.encoding有可能被修改为不是系统的字符集,所以就不用这个了改用sun.jun.encoding,对这个属性还不太了解,但是确实是能拿到系统字符集的。
网友评论