JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Servlet/JSP 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
話題被移動
該話題已被移動 - browser , 2003-07-21 18:18
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [精華]
thondchen



發文: 0
積分: 0
於 2003-07-21 18:13 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我在程式中include 一個靜態的html檔,但顯示出來的結果中文都是?號顯示
因為是要動態的把檔案include進來因此應該是使<jsp:include>..但試了好久中文都是問號顯示,不之各位可否提供一些意見,感激不進

我的include流程是
layout.jsp(<%@page contentType="text/html; charset=big5"%>)裡面include了middle.txt
middle.txt裡面include了cate_id1.html(此為靜態頁面)
結果include的cate_id1.html無法顯示中文
~"~


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
browser

戀香

版主

發文: 3570
積分: 1
於 2003-07-21 18:21 user profilesend a private message to usersend email to browserreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
thondchen wrote:
我在程式中include 一個靜態的html檔,但顯示出來的結果中文都是?號顯示
因為是要動態的把檔案include進來因此應該是使<jsp:include>..但試了好久中文都是問號顯示,不之各位可否提供一些意見,感激不進

我的include流程是
layout.jsp(<%@page contentType="text/html; charset=big5"%>)裡面include了middle.txt
middle.txt裡面include了cate_id1.html(此為靜態頁面)
結果include的cate_id1.html無法顯示中文
~"~


??? layout.jsp 包含 middle.txt .. middle.txt 又包含 cate_id1.html ??
什麼意思 .. 可以把 重要code 的部分 ...
張貼上來 .. 大家比較好解決 .....
感謝您 ~~~


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
planet





發文: 12
積分: 0
於 2003-07-21 21:59 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
cate_id1.html裡面有沒有設定charset=Big5 ?

reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
thondchen



發文: 0
積分: 0
於 2003-07-21 22:35 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我剛才再試了一下∼
我用
<jsp:include page="prod/staticpage/cate_id1.html" flush="true"/>
然後我用browser看
結果cate_id1.html裡頭的中文字都顯示成?號
可是我用
<%@ include file="prod/staticpage/cate_id1.html" %>

則正常
那是不是用jsp:include的html檔不能顯示中文呢


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
thondchen



發文: 0
積分: 0
於 2003-07-21 22:41 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
cate_id1.html有設charset=Big5

reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
piggy

piggy



發文: 333
積分: 2
於 2003-07-22 01:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
會這樣嗎? 要不要把你的環境列出來給大家看一下
我簡單寫了三支程式測試了一下
並沒有你說的問題耶

我的環境是
Windows XP
Tomcat 4.1.24

aa.jsp程式碼如下:
<%@ page contentType="text/html; charset=Big5" %>
以下內容來自 test.html (使用jsp:include)<br>
<jsp:include page="test.html"/>
以下內容來自 test.html (使用<%@ include %><br>
<%@ include file="test2.html" %>

test.html程式碼如下:
<h1>瓜哇論談</h1><br>

test1.html程式碼如下:
<h1>叫我第一名</h1><br>

執行後的畫面:


reply to postreply to post
An Apple a day, keeps M$ away
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:piggy]
piggy

piggy



發文: 333
積分: 2
於 2003-07-22 01:59 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
piggy wrote:
我的環境是
Windows XP
Tomcat 4.1.24


補充一下瀏覽用
IE 6.0 SP1 和 Mozilla 1.4
預設編碼都是Big5
都是正常的


reply to postreply to post
An Apple a day, keeps M$ away
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:piggy]
piggy

piggy



發文: 333
積分: 2
於 2003-07-22 02:08 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
再補充一下另一個環境
Max OS X (10.2.6)
Tomcate 4.1.18
Safari瀏覽器 1.0

上述的Code執行起來也是正常的 Smile


reply to postreply to post
An Apple a day, keeps M$ away
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
thondchen



發文: 0
積分: 0
於 2003-07-22 06:54 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
早安各位我的環境是
sunOS 5.8
tomcat 4.1.8

是不是我的環境設定有問題或是tomcat 要設定什麼東西呢
我目前的問題大概可以是說我的<%@ inlcude file=...%>中文正常顯示
但是<jsp:inlcude>只要是中文字都是?號
鳴~~~~人家不玩了啦(心灰意冷~"~)


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
thondchen



發文: 0
積分: 0
於 2003-07-22 09:57 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
各位我發現我在jsp讀檔時讀出來的檔案也是中文都是?號
好向己經不只是<jsp:inlcude>的有的問題
code:

------------------------------------------------------------------------------------------
String Line;
FileReader objReader=new FileReader("/micropay1/portal/test.html");
BufferedReader objBuffer=new BufferedReader(objReader);
while ((Line=objBuffer.readLine())!=null){
out.println(Line+"<br>");
}
-----------------------------------------------------------------------------------------

test.html code:
-----------------------------------------------------------------------------------------
<html>
<head>
<title>列管案件管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>
<body >
這是一個html網頁
</body>
</html>
------------------------------------------------------------------------------------------
顯示出來為
-----------------------------------------------------------------------------------------
????html??
-----------------------------------------------------------------------------------------
我同事在他自己的local上去跑有好向沒有問題
我懷疑是不是tomcat還是os的問題~
傷腦筋吔~~~~
><..


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
piggy

piggy



發文: 333
積分: 2
於 2003-07-24 12:10 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
為什麼Windows平台沒問題,可是在Sun上確有問題
你們有沒有想過兩者的差別在哪裡?
中文版的關係?
是的! 正確的說應該是平台預設編碼不同的關係
在Windows中文版上預設的文字編碼是Big5(MS950 or CP950)
而使用動態的include (<jsp:include....>)時
container會真的去"執行"要include的網頁
網頁中的文字是Big5, 平台的編碼也是Big5
那他們之間就和平共存沒有問題
可是在Sun上面,預設的編碼是ISO8859-1
所以當去動態include一個網頁時,資料會用預設的編碼處理(ISO8859-1)
當然就造成編碼的錯誤

所以要解決這個問題
就是指定要include的網頁的編碼方式
<meta http-equiv="Content-Type" content="text/html; charset=big5">
這個html的指令是給瀏覽器看的
不是給container在處理response用的
所以你得把靜態的網頁改成jsp
然後在最前面加上
<%@ page contentType="text/html; charset=Big5" %>
其它就照原來的HTML靜態網頁就可以
這樣在動態include時
就會是正確的結果了!!

我已經在Sun OS 5.8 + Sun ONE AP server測試過
這樣是沒有問題的

希望能解決你的問題 ^_^


browser edited on 2003-07-24 12:26
reply to postreply to post
An Apple a day, keeps M$ away
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:piggy]
piggy

piggy



發文: 333
積分: 2
於 2003-07-24 12:14 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
用reader也同樣是編碼的問題
因為你沒有告訴java要用什麼樣的編碼方式來讀取檔案資料
那它就會用系統預設的
如果系統預設的跟檔案的編碼方式不同的話
那就會錯誤囉~~~


reply to postreply to post
An Apple a day, keeps M$ away
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:piggy]
duba





發文: 10
積分: 1
於 2003-11-14 18:27 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
那如果我的靜態頁面(html)不想成jsp檔,有解嘛?
我的環境下也有類似的問題,就是jsp檔顯示中文沒有問題
但靜態頁面(html,htm)就無法正常顯示,
明明charset=Big5,但IE編碼指到ISO-8559去,要手動調整
win2k+tomcat4.1.29+IIS5
本以為搭配IIS5可以解決靜態頁面中文顯示問題
結果還是一樣?聽說要把tomcat在中文win2k上重新編譯
才能解決?果真如此,太可怕了~~~


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:thondchen]
qukmei





發文: 74
積分: 0
於 2003-11-18 09:10 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
1、再装一个apache就可以了
2、你把html全变为.jsp就可以了
3、若非要用html那么最好<jsp:include


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:duba]
aladdin

老婆不准我用兒子照片



發文: 175
積分: 3
於 2003-11-18 13:22 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
duba wrote:
那如果我的靜態頁面(html)不想成jsp檔,有解嘛?
我的環境下也有類似的問題,就是jsp檔顯示中文沒有問題
但靜態頁面(html,htm)就無法正常顯示,
明明charset=Big5,但IE編碼指到ISO-8559去,要手動調整
win2k+tomcat4.1.29+IIS5
本以為搭配IIS5可以解決靜態頁面中文顯示問題
結果還是一樣?聽說要把tomcat在中文win2k上重新編譯
才能解決?果真如此,太可怕了~~~


靜態的HTML和Server端的設定應該沒有關係。就我所知,Tomcat處理靜態HTML,也就是直接把檔案抓出來丟給HTTP server,再丟給使用者端。中間不會有任何處理。(當然也就沒有什麼include囉!)

問題在browser端。IE裡面有個所謂的「預設語言」,意思就是:不管你網頁用哪種encoding,我都用我的預設語言顯示。嘿嘿!這算哪門子「預設語言」!

如果你想讓你的IE正確的(辨認與)顯示encoding,要在檢視>編碼下,選取自動選取,這樣之後,IE的動作才變成:當網頁有指定encoding時,顯示網頁所指定的encoding,當網頁沒有指定encoding時,使用「預設語言」。

至於為什麼IE是這樣設計?這跟M$強調的backward compatibility,有很大的關係。有沒有解法?這就有很多可以解釋的技術了。Encoding的處理裡面,最重要的一環,其實在於顯示——也就是字型的設計,現在業界的標準答案叫做OpenType。如果有人有興趣,又討厭M$,不妨去Adobe的網站找找OpenType 的 spec。Apple的解釋也不錯,Sun我就不清楚了。


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:aladdin]
scottchu

嗑Java,喝爪哇



發文: 38
積分: 0
於 2010-07-01 14:17 user profilesend a private message to usersend email to scottchureply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
最近碰到一個類似的問題,JSP中是用jsp:include一個html file,其中:

1.JSP中有指定page encoding和charset都是utf8。
2. OS的LANG也是utf8。
3. system property的file.encoding也是utf8。

被include的html file事實上是一個footer file,內容只有html片段指令,就是一個table的設定,並非完整的html檔案,這個檔案用editor看過是utf8的。

網站是用apache web配tomcat 6,web.xml中沒有強制設定included file encoding,雖然沒有強制設定,但是
網站開始有一段時間footer都很正常,但是這兩天發現footer變成亂碼。而且有時重啟tomcat正常顯示,但有時不正常?

不使用jsp作為被include file type原因是因為這個檔案是給使用者單位維護,所以希望維持靜態的hmtl,以免他們搞不懂傳上一個破壞jsp結構的檔案。

可有人知道可能原因?多謝!


scottchu edited on 2010-07-01 15:32
reply to postreply to post
學JAVA別忘了買杯爪哇咖啡陪著您^^!
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:scottchu]
mylee





發文: 764
積分: 1
於 2010-07-01 15:22 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
scottchu wrote:
被include的html file事實上是一個footer file,內容只有html片段指令,就是一個table的設定,並非完整的html檔案,這個檔案用editor看過是utf8的。


建議不妨把該 file 改為附檔名 .jsp,然後用 <%@ page pageEncoding="utf-8"%> 來指示編碼。


reply to postreply to post
作者 Re:使用<jsp:include..來include 一個靜態的html檔但無法顯示中文 [Re:mylee]
scottchu

嗑Java,喝爪哇



發文: 38
積分: 0
於 2010-07-01 17:31 user profilesend a private message to usersend email to scottchureply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
多謝!這個我知道可以解決問題,另外在web.xml強制設定也可以。我只是想問問有沒有人碰過這種狀況,原本可以正常decode的,怎會突然不行?

我們有工程師發現在Tomcat的startup.sh中的CATALINA_OPTIONS有 -D一堆jmx的packag
e的,如果把這些拿掉重啟,好像就沒有亂碼,但是我不敢確定是這樣原因。

還是看看有沒有其他人知道原因,問這個是純研究。


reply to postreply to post
學JAVA別忘了買杯爪哇咖啡陪著您^^!
» JWorld@TW »  Servlet/JSP 討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8