当我将内容类型设置为
时response.setContentType( "text/html" );
日语字符显示正确,但是当我将内容类型设置为" application / pdf"时,日文字符丢失了。
我也试过" application / pdf; charset = Shift_JIS",但没有工作。
答案 0 :(得分:0)
PDF是二进制格式,应该由servlet和用户的Web浏览器处理,而不进行任何基于文本的字符编码和解码。
因此,如果字符显示不正确,则问题出在PDF本身(即生成方式有问题)或显示它的软件中。
令人费解的是,只是更改响应内容类型正在产生这种效果,因为这应该对在服务器端创建响应的方式没有影响。所以我有两种可能的解释:
除了响应内容类型之外,您实际上正在更改其他内容。如果是这种情况,您需要解释(更好)您实际在做什么。
您尝试发送的内容实际上是HTML ...当您将响应内容类型设置为PDF时,您将导致浏览器将HTML文档发送到PDF查看器。 (当你这样做时,我很惊讶你得到任何东西。我认为浏览器端的PDF查看器会报告一个损坏的文件或其他东西。)