【发布时间】:2015-08-18 16:18:26
【问题描述】:
我创建了一个 java 代码来存储上传的文本文档。然后我返回该文件中的文本。所有的文字都是“僧伽罗”语言。 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。我已经用僧伽罗字符测试了 jsp,它们正在工作。 我添加了 UTF-8 作为内容类型。
【问题讨论】:
-
我会尝试为输出设置 UTF-8,即 PrintStream。
-
Unicode 字符在 Java 中肯定 被 识别,但如果您选择这样做,您的 Java 程序可能会错误地读取、操作或输出它们。此外,您用于检查结果的任何机制都可能对程序的输出造成错误的影响。你的代码片段看起来有点可疑,但你没有给我们一个完整的例子,所以我们不能说太多。
-
@PeterLawrey、
PrintStreams 和其他OutputStreams 没有具有与之关联的编码。事实上,这是我觉得最可疑的地方。OutputStreams 用于写入二进制数据;对于字符数据,应该使用Writer。 -
您需要向我们展示 JSP,并展示如何将输出直接发送给它。还要确保您网页中使用的字体能够显示那些“僧伽罗”字符。
-
@JohnBollinger 我在想 PrintWriter 所以你的评论帮助我想出了一个答案,