Java 字符看起来像“quot;”&引用;在读取上载文件的内容时
我有一个上传文件的客户端,我在服务器端得到这个文件,读取它的内容并将它们保存到一个txt文件中。但当我尝试读取它时,出现了一个字符错误,如果有土耳其字符,它看起来像“?”。我的阅读代码如下:Java 字符看起来像“quot;”&引用;在读取上载文件的内容时,java,file-upload,java-io,r.java-file,Java,File Upload,Java Io,R.java File,我有一个上传文件的客户端,我在服务器端得到这个文件,读取它的内容并将它们保存到一个txt文件中。但当我尝试读取它时,出现了一个字符错误,如果有土耳其字符,它看起来像“?”。我的阅读代码如下: FileItemStream item = null; ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iterator = upload.get
FileItemStream item = null;
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iterator = upload.getItemIterator(request);
String encoding = null;
while (iterator.hasNext()) {
item = iterator.next();
if ("fileUpload".equals(item.getFieldName())) {
InputStreamReader isr = new InputStreamReader(item.openStream(), "UTF-8");
String str = "";
String temp="";
BufferedReader br = new BufferedReader(isr);
while((temp=br.readLine()) != null){
str +=temp;
}
br.close();
File f = new File("C:/sedat.txt");
BufferedWriter buf = new BufferedWriter(new FileWriter(f));
buf.write(str);
buf.close();
}
如果这是生产代码,我建议直接将输出写入文件,而不要先将其累积到字符串中。而且,您可以通过将源代码作为InputStream读取并作为OutputStream写入(并跳过字符转换)来避免任何潜在的编码问题。您的输入文件真的是UTF-8格式吗?那么,statist.txt中的编码是什么?我没有看到编码规范。创建的stat txt是ANSI格式的,我不知道如何使其UTF8See
BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f), "UTF-8"));