Java Netbeans和控制台中的未知字符

Java Netbeans和控制台中的未知字符,java,netbeans,unicode,Java,Netbeans,Unicode,我有一个用utf-8数据编码的文本文件“abc.txt”,它是一组表情符号,来自: (^u^)快乐 我的代码将此信息从文件提取到netbeans标准输出 我的代码: 在netbeans中,输出如下: 在控制台中,输出为: 这个字符是什么? 如何删除它?widows编辑器添加的文件开头有一个不可打印的字符。有必要在文件中删除它或用Java代码跳过它。控制台输出看起来像UTF-8编码的(BOM,U+FEFF),字节0xEF 0xBB 0xBF,根据一些传统的8位字符编码被误解 要么不带BOM保存

我有一个用utf-8数据编码的文本文件“abc.txt”,它是一组表情符号,来自:
(^u^)快乐

我的代码将此信息从文件提取到netbeans标准输出
我的代码:

在netbeans中,输出如下:

在控制台中,输出为:

这个字符是什么?

如何删除它?

widows编辑器添加的文件开头有一个不可打印的字符。有必要在文件中删除它或用Java代码跳过它。

控制台输出看起来像UTF-8编码的(BOM,U+FEFF),字节0xEF 0xBB 0xBF,根据一些传统的8位字符编码被误解


要么不带BOM保存文件,要么让您的程序在数据开始时识别并跳过BOM。

删除文件中的所有内容,然后自己编写,以检查您的问题。@Nomanaliabasi:我在记事本中手动键入了
happy
,以UTF-8编码保存为'abc.txt',然后尝试了该程序。在开头提供相同的不可打印字符。(显然)将编码从UTF-8改为unicode似乎解决了这个问题。“如果将文件另存为UTF-8,记事本会将BOM(字节顺序标记)EF BB BF放在文件的开头。”。感谢您的输入。我在记事本中手动键入了
happy
,以UTF-8编码保存为'abc.txt',然后尝试了这个程序。在开头提供相同的不可打印字符。UTF-8文档这样做是标准的吗?很抱歉,我已经很久没有使用windows了:),windows编辑器在文件的开头添加了一个特殊的两个字节,表示它是UTF8文档:),只需删除它们即可。我不能推荐windows工具来做这件事。试试上网本中的编辑器。
public static void main(String[] args) throws FileNotFoundException {
    Scanner sc=new Scanner(new File("abc.txt"));
    while(sc.hasNext()){
        System.out.println(sc.nextLine());
    }
}