我在尝试解析从文件中获取的JSON字符串时遇到了一个问题。我的问题是,当我读取它时,在我的字符串开头有一个零宽不换行空格字符(unicode 0xfeff),而我无法摆脱它。由于可能存在其他具有不同Unicode的隐藏字符的机会,我不想使用正则表达式。以下是我的代码:
以下是我迄今为止尝试过的方法:
StringBuilder content = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader("src/test/resources/getStuff.json"));
String currentLine;
while((currentLine = br.readLine()) != null) {
content.append(currentLine);
}
br.close();
} catch(Exception e) {
Assert.fail();
}
以下是JSON文件的开头(文件内容过长,无法全部复制粘贴,但我已确认其有效性):
{"result":{"data":{"request":{"year":null,"timestamp":1413398641246,...
以下是我迄今为止尝试过的方法:
- 将JSON文件复制到Notepad ++并显示所有字符
- 将文件复制到Notepad ++中,将其转换为UTF-8而没有BOM和ISO 8859-1
- 在其他文本编辑器(如sublime)中打开JSON文件并保存为UFT-8
- 将JSON文件复制到txt文件中并在其中读取
- 尝试使用Scanner而不是BufferedReader
- 在intellij中,我尝试查看 -> 活动编辑器 -> 显示空格
BomInputStream
就是移除 bom 的方法,你可以在 这里 找到更多信息。 - Jeremy W