3

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

页面的结构是这样的:

include head(head 写在另一个页面上,就像 aspx 中的 masterpage。)
(body(出现问题的地方))
include foot(foot 也写在另一个页面上。)

头页包含编码和元标记:

<%@ 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 页面中?

4

3 回答 3

6

我看到两个潜在的原因:

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

与具体问题无关,JSP 顶部的以下内容就足够了:

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

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

于 2011-02-24T12:55:08.783 回答
1

除了DOCTYPE声明之外,在文档中包含一个元标记通常是一个好主意,<head>如下所示:

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

除此之外,BalusC 建议所有涉及的文件需要使用 UTF8 编码实际保存,这一点非常重要。

于 2011-08-05T12:38:07.957 回答
1

将此代码段添加到您的 servlet 中:

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html; charset=utf-8");
于 2020-04-06T21:14:47.330 回答