Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTTPResponse无法显示日语字符_Java_Jsp_Servlets - Fatal编程技术网

Java HTTPResponse无法显示日语字符

Java HTTPResponse无法显示日语字符,java,jsp,servlets,Java,Jsp,Servlets,当我将内容类型设置为 response.setContentType( "text/html" ); 日语字符显示正确,但当我将内容类型设置为“application/pdf”时,日语字符丢失 我也尝试过“application/pdf;charset=Shift_JIS”,但没有成功。pdf是一种二进制格式,应该由servlet和用户的web浏览器处理,而不需要进行任何基于文本的字符编码和解码 因此,如果字符显示不正确,则问题要么在于PDF本身(即生成方式存在问题),要么在于显示PDF的软件

当我将内容类型设置为

response.setContentType( "text/html" );
日语字符显示正确,但当我将内容类型设置为“application/pdf”时,日语字符丢失


我也尝试过“application/pdf;charset=Shift_JIS”,但没有成功。

pdf是一种二进制格式,应该由servlet和用户的web浏览器处理,而不需要进行任何基于文本的字符编码和解码

因此,如果字符显示不正确,则问题要么在于PDF本身(即生成方式存在问题),要么在于显示PDF的软件

令人费解的是,仅仅更改响应内容类型就会产生这种效果,因为这不会影响在服务器端创建响应的方式。因此,我有两种可能的解释:

  • 除了响应内容类型之外,您实际上还更改了其他内容。如果是这样,你需要(更好地)解释你实际上在做什么

  • 您试图发送的内容实际上是HTML。。。当您将响应内容类型设置为PDF时,将导致浏览器向PDF查看器发送HTML文档。(我很惊讶,当你这么做的时候,你竟然得到了任何东西。我本以为浏览器端的PDF查看器会报告一个损坏的文档或其他东西。)


  • 您是否正在尝试直接从JSP文件创建PDF?是的,它是PDF格式的报告您是否自己创建PDF?如果是这样,您可能需要在InputStreamReader中嵌入Japanese fonts.set SHIFT_JIS为什么SHIFT_js而不是UTF-8?我已经调查并发现这个问题与Jasper的PDF生成API有关,而不是与HttpSpone有关。一旦我得到它,我将更新适当的修复程序