2011-02-24 126 views
3

我有一個運行在jboss 4.2.2服務器下的jsp頁面。JSP土耳其字符問題

這個頁面的結構是這樣的:

包括頭部(頭寫入另一頁上,就像在ASPX母版。)
(體(問題出在哪裏出現))
包括足(足也寫在另一頁。)

頭頁包含了編碼和meta標籤:

<%@ 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頁面中顯示的文本?

+0

「當我在頁面上寫東西時」 - 我想寫它不會導致問題。也許提交,存儲在數據庫中,或其他任何事情正在造成這種情況。澄清你的問題。 – Bozho 2011-02-24 09:23:37

+0

我的意思是硬編碼在頁面中,比如​​默認爲 – 2011-02-24 09:24:30

回答

4

我看到了兩個可能的原因:

  1. 你的編輯器沒有的頁面保存爲UTF-8。檢查默認設置和/或另存爲選項。在某些JSP中缺少@page。它必須存在於全部 JSP文件中,也包含在內。

無關的具體問題,在JSP的頂部以下是已經足夠了:

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

,你已經把已經有(隱含的)默認的殘餘。

+0

其實只有一個全局頁面,表示head.jsp,它包含了這些設置。我如何在eclipse中檢查這些選項? – 2011-02-25 13:03:49

+0

我重申:它必須存在於所有** JSP文件中。至於Eclipse,在首選項中選中* General> Workspace> Text file encoding *。 – BalusC 2011-02-25 13:09:44

1

除了DOCTYPE聲明它通常是一個好主意,包括meta標籤文檔<head>像這樣:

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

除此之外BalusC's suggestion所有文件涉及必須要與實際保存UTF8編碼非常重要。

+0

當通過HTTP提供頁面時,該元標記**被忽略**。相反,charset將從HTTP響應頭獲得。我的答案中的JSP頁面編碼就是這樣。 OP只需確保它已在所有JSP中設置。另見http://www.w3.org/TR/html4/charset.html#h-5.2.2和http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters- right.html#JSPServletResponse – BalusC 2011-08-05 14:55:33