【问题标题】:JSP Turkish Character ProblemJSP土耳其语字符问题
【发布时间】:2011-02-24 09:06:06
【问题描述】:

我有一个在 jboss 4.2.2 服务器下运行的 jsp 页面。

页面的结构是这样的:

包括 head(head 写在另一个页面上,如 aspx 中的母版页。)
(正文(出现问题的地方))
包括脚(脚也写在另一页。)

首页包含编码和元标记:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

当我在页面中写入字符时,例如 şğĞİÇçÖ(土耳其语),字符显示为“?” (问号)我应该怎么做才能避免这种行为?

我怎样才能让jsp页面中的文字显示出来?

【问题讨论】:

  • “当我在页面上写东西时”——我想只是写它不会造成问题。也许提交、存储在数据库中或其他任何原因都会导致这种情况。澄清你的问题。
  • 我的意思是像 şğüçö 这样在页面中进行硬编码

标签: jsp character-encoding turkish


【解决方案1】:

我看到两个潜在的原因:

  1. 您的编辑器没有将页面保存为 UTF-8。检查默认设置和/或另存为选项。
  2. 某些 JSP 中缺少 @page。它必须存在于所有 JSP 文件中,包括包含在内。

与具体问题无关,在JSP之上的以下内容就足够了:

<%@ page pageEncoding="UTF-8" %>

您放在那里的剩余部分已经(隐式)默认值。

【讨论】:

  • 实际上只有一个全局页面,比如 head.jsp,它包含了这些设置。如何在 eclipse 中检查这些选项?
  • 我重申:它必须存在于 所有 JSP 文件中。至于 Eclipse,请在首选项中检查 General > Workspace > Text file encoding。
【解决方案2】:

除了DOCTYPE 声明之外,通常最好在文档&lt;head&gt; 中包含一个元标记,如下所示:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

除了BalusC's suggestion,所有涉及的文件都需要使用 UTF8 编码实际保存非常重要。

【讨论】:

【解决方案3】:

将此 sn-p 添加到您的 servlet 中:

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html; charset=utf-8");

【讨论】:

  • 非常感谢您抽出宝贵时间,但这个问题已经很久没有解决了,甚至 jsp 也快死了 :)
猜你喜欢
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
相关资源
最近更新 更多