XMLStreamReader-> Location具有称为getCharacterOffset()的方法.
不幸的是,Javadocs指出这是一个命名不明确的方法:它还可以返回一个字节偏移量(在实践中似乎是正确的).从文件读取时(例如),这似乎无济于事:
Return the byte or character offset into the input source this
location is pointing to. If the input source is a file or a byte
stream then this is the byte offset into that stream, but if the input
source is a character media then the offset is the character offset. (emphasis added)
我真的需要字符偏移量;而且我很确定我会得到字节偏移量.
(UTF-8编码)XML包含在(部分损坏的1G)文件中. [因此需要使用一个较低级别的API,除非它确实别无选择,否则不要抱怨它缺乏格式正确性].
题
Javadoc说“ …输入源是字符介质…”时是什么意思:我如何强制其将输入文件视为“字符介质”,以便获得准确的(字符)偏移量而不是字节偏移量?
等等等等:
[我很确定这是怎么回事-当我将文件剥离(使用某些已知的高级标签)时,我丢失或丢失了几个字符-以一种不容忍的方式-我将区别最多可以删除几个多字节字符:同样,当我复制(例如在Powershell中使用“ head” /“ tail”)时,该工具似乎可以正确识别[或假定UTF-8]并可以很好地转换为据我所见,UTF-16