我创建了一个用于存储上传文本文档的java代码。然后我返回该文件中的文本。所有的文字都在" sinhala"语言。 UTF-8编码文本
streamReader = new InputStreamReader(new FileInputStream(new File(filePath)), "utf8" /*Here I have tried 'UTF-8', 'utf-8'*/);
br = new BufferedReader(streamReader);
PrintStream printStream= new PrintStream(f);
while ((line = br.readLine()) != null) {
.....
}
输出直接发送到jsp页面,它显示为' ?????????????????????? ??????'
Windows 8.1,tomcat和java版本7.我已经使用sinhala字符测试了jsp,它们正在工作。 我添加了UTF-8作为内容类型。
答案 0 :(得分:1)
JSP
必须提供指定的编码为UTF-8
以及所有 InputStream/Writer
和OutputStream/Writers
具有UTF-8
字符设置明确提供。
<%@ page contentType="text/html; charset=UTF-8" %>
答案 1 :(得分:0)
要设置Writer的编码,您可以
PrintWriter out = new PrintWriter(new InputStreamWriter(f, "UTF-8"));
您可以使用PrintWriter或PrintStream,因为它具有相同的方法。
答案 2 :(得分:0)
您需要确保HTTP响应的正确编码。
如果在JSP中插入文本,请在.jsp文件的顶部设置JSP编码(另请参阅UTF-8 encoding in JSP page):
<%@ page contentType="text/html; charset=UTF-8" %>
...
<c:out value="${myDocumentTextInUnicode}"/>
如果在servlet中生成响应,请在那里设置编码:
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
while ((line = br.readLine()) != null) {
out.println(line);
}