当前位置: 首页 > 知识库问答 >
问题:

在java中无法识别Unicode字符

滕弘新
2023-03-14

我创建了一个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作为内容类型。

我试过这个,这个,还有这个。

共有3个答案

胡景焕
2023-03-14

您需要确保HTTP响应的正确编码。

如果在JSP中插入文本,请在顶部设置JSP编码。jsp文件(另请参见jsp页面中的UTF-8编码):

<%@ 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);
}
司空繁
2023-03-14

要设置写入程序的编码,可以执行以下操作:

PrintWriter out = new PrintWriter(new InputStreamWriter(f, "UTF-8"));

您可以改用PrintWriter或PrintStream,因为它具有相同的方法。

丁书
2023-03-14

JSP必须提供指定的编码为UTF-8,以及明确提供了UTF-8字符集的所有输入流/写入器和输出流/写入器。

<%@ page contentType="text/html; charset=UTF-8" %>
 类似资料:
  • Java无法通过选项 我的用户文件夹的路径是,字符给java带来了一些麻烦。如果JDK安装在我的用户文件夹中,使用调用命令,它会给出以下结果: 请注意,它将< code>á字符替换为< code >γ。< br >如果使用< code>scoop install -g、< code>choco install或任何JDK发行版的默认安装程序进行全局安装,这些命令可以正常运行,但是如果我调用并传递完

  • 问题内容: 我在Windows 2012服务器上使用PowerShell,我从System32删除了所有Java命令,重新安装了jdk,将JAVA_HOME和Path设置为指向新安装。而且我仍然收到以下错误: 问题答案: 我从System32删除了所有Java命令 这就是Windows无法找到java.exe的原因。默认的JRE安装将Java放入System32目录,而CMD和Powershell

  • 如何正确拆分字符串,使Words[1]实际上是?谢谢你的帮助!

  • 我试图从我的jar启动另一个Java进程,我使用的是ProcessBuilder: 错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出。无法识别的选项:-类路径“C:\absoulte\path\library.jar;C:\absoulte\path2\library2.jar;C:\absoulte\path3\library3.jar”

  • 我试图张贴消息(包含英文和中文)到一个服务器。如果我使用Java应用程序来张贴消息,它工作得很好。 虽然我在Android中使用HttpPost,但服务器会收到无法识别的字符,例如 "æ¸åå¤§å ¦". 我尝试使用HttpURLConnection发布消息,结果也包含无法识别的字符。Java应用程序中的HttpClient和Android应用程序中的HttpClient有什么区别?非常奇怪。

  • 问题内容: 我遇到反序列化问题: 这是我的课: 我要反序列化的JSON是: 我得到这个异常: 我不想添加: 因为我想得到ResObj … 如果我添加了注释,它将通过,但会将其设置为null ..这是我不想要的。 问题答案: 如果您不想在bean中使用设置器,而只使用字段和获取器,则可以使用ObjectMapper的可见性检查器来允许字段可见。像下面这样