java urlparser_使用dtdparser解析中文dtd (转ravenix)

尽管有一些不足,wutka dtdparser 仍然是使用最广泛的java dtd dom解析器。

要在DTD中使用中文,必须要在dtd文件的第一行写上

并且将dtd文件以utf-8格式保存。别的编码格式也可以试试,但我不想冒险。

dtdparser不使用这个encoding指示来解析DTD,我们只能自己想办法,修改它的代码。

dtdparser有这些构造器(省略了带trace的)

DTDParser(java.io.File in)

DTDParser(java.io.Reader in)

DTDParser(java.net.URL in)

其中以Reader为参数的没有编码问题,因为reader本身已经指定了字符集。

以File为参数的构造器内部使用了new FileReader(in),这个方式使用系统默认字符集,不要用它,可以用FileInputStream和InputStreamReader来指定字符集,传递给以Reader为参数的构造器。

以URL为参数的构造器内部使用了new InputStreamReader(in.openStream()),没有指定字符集,我们可以给它增加一个带有String charsetName参数的构造器,内部调用new InputStreamReader(in.openStream(), charsetName)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值