【问题标题】:HTTPResponse fail to display Japanese charactersHTTPResponse 无法显示日文字符
【发布时间】:2014-04-15 16:03:00
【问题描述】:

当我将内容类型设置为

response.setContentType( "text/html" );

日文字符显示正常,但当我将内容类型设置为“应用程序/pdf”时,日文字符丢失。

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

【问题讨论】:

  • 您是否尝试直接从 JSP 文件创建 PDF?
  • 是的,它以 PDF 格式报告
  • 您是在自己创建 pdf 文件吗?如果是这样,您可能需要嵌入日文字体。
  • 在 InputStreamReader 中设置 SHIFT_JIS
  • 为什么是 shift_js 而不是 UTF-8?

标签: java jsp servlets


【解决方案1】:

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

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

令人费解的是,只是更改响应内容类型会产生这种影响,因为这对在服务器端创建响应的方式应该没有影响。所以我有两种可能的解释给你:

  1. 除了响应内容类型之外,您实际上正在更改其他内容。如果是这种情况,您需要(更好地)解释您实际在做什么。

  2. 您尝试发送的内容实际上是 HTML ...当您将响应内容类型设置为 PDF 时,您会导致浏览器将 HTML 文档发送到 PDF 查看器。 (我很惊讶当你这样做时你得到任何东西。我原以为浏览器端的 PDF 查看器会报告损坏的文档或其他东西。)

【讨论】:

  • 我已调查发现此问题与 Jasper 的 PDF 生成 API 有关,与 HTTPRespone 无关。我将更新适当的修复,一旦我得到它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 2011-12-06
  • 2015-09-17
  • 2018-06-16
相关资源
最近更新 更多