您好我正在尝试在Java上编写一个单词计数器类。我想我正在从基本文件夹中读取带有扫描仪的文件并将它们打印到控制台。但是,第一项文件返回前缀为ÿş或有时?两个问号。文件中的每个项目都是字符串。这是我的源代码,我无法设法处理这个,所以请任何帮助将不胜感激,谢谢......(顺便说一句,我使用的是JCreator LE 4.5)
$scope.remove = function(index){
$scope.items.splice(index, 1);
//results in [Object, Object, undefined, Object, ...]
//add the following code
$scope.items.pop();
//results in [Object, Object, Object, ...] the undefined has gone
};
答案 0 :(得分:0)
FF FE
打印{p> ÿş
Windows 1254 codepage,我认为这是您的系统默认设置。
要正确读取文件,您需要跳过BOM,这可以使用Apache Commons IO BOMInputStream
包装器完成:
try (BOMInputStream bis = new BOMInputStream(new FileInputStream(filename));
Scanner in = new Scanner(bis, bis.getBOMCharsetName() == null
? Charset.defaultCharset().name()
: bis.getBOMCharsetName())) {
// read lines
} catch (IOException e) {
// ...
}
或者您可以手动跳过这两个字节,如this post的答案中所述。