我正在尝试读取一个 UTF-8 编码的 txt 文件,其中包含一些土耳其字符。基本上我已经编写了一个基于轴的 Web 服务,它读取这个文件并将输出作为字符串发送回来。不知何故,我无法正确阅读字符。代码非常简单,如此处所述:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CodingErrorAction;
public class TurkishWebService {
public String generateTurkishString() throws IOException {
InputStream isr = this.getClass().getResourceAsStream(
"/" + "turkish.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(isr,
"UTF8"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
return str;
}
public String normalString() {
System.out.println("webService normal text");
return "webService normal text";
}
public static void main(String args[]) throws IOException {
new TurkishWebService().generateTurkishString();
}
}
这里是turkish.txt的内容,只有一行
Assalğçğıİİööşş
我得到标准输出
Assal?τ????÷÷??
请建议我在这里做错了什么。