2012-10-11 59 views
0

在我的Java源代码,我想写非ASCII字符使用Java,即一些字符在UTF-8格式的文本文件:编译错误尝试写入UTF-8文本到文本文件

File f = new File("U.txt"); 
    FileWriter writer = new FileWriter(f); 
    writer.write("लता"); // hindi text 
    writer.close(); 

我正在使用记事本++作为文本编辑器,我用编码UTF-8保存该文件。但是当我编译java文件时出现如下错误:

illegal character: \187 
import java.io.*; 
^

我在哪里犯错?我需要做什么 ?这是一个编译错误!

+0

使用'FileOutputStream'将参数 – tozka

+0

作为参数传递给最终用户。 – PermGenError

+0

@chaitanya10没有187行。计划有14个的代码 –

回答

1

我的猜测是,你的编辑器在你的文件的开头(这是不必要的UTF-8)把一个BOM。我相信记事本++有一个"utf-8 without BOM" encoding,你应该用它来代替。

+0

行如果它是不必要的UTF-8,那么为什么一个文本编辑器如记事本++把它和为我们提供了两种选择,使用和不使用 –

+0

@YEP - 这是一个很好的问题,我也没有想法为什么记事本++包含utf-8的选项_with_ BOM。可能它们原本意外地实现了它,然后意识到它没用,但不想打破当前用户,因此在没有BOM的情况下添加了单独的编码。 – jtahlborn