[問題]"編碼"-->"自動偵測"

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

[問題]"編碼"-->"自動偵測"

文章Guest » 週二 11月 11, 2003 8:47 pm

Hello!

把browser的"編碼"設成"自動偵測",
(1)以開啟檔案的方式,browser可以正確把下面的網頁轉成Big5並顯示.
(2)然而,透過apache,browser把下面的網頁顯示亂碼. 一定要再手動指定Big5編碼才行.

因此,我懷疑Apache動了手腳,把browser搞混了.
我從apache v2.0.48 source compile並install.
~apache/conf/httpd.conf
幾乎一字未動. 可能問題在哪裡?

煩請指導!


<html>
<head>
<title>大家一起來</title>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>
<BODY>
<H1 CLASS="TITLE" >大家一起來</H1>
</BODY>
</html>
Guest
 

re:[問題]"編碼"-->"自動偵測"

文章Tetralet » 週二 11月 11, 2003 9:20 pm

我在 /etc/apache/httpd.conf 中加入了:

代碼: 選擇全部
AddDefaultCharset Big5


就可以指定 Apache 預設上使用 Big5 的編碼了。

不過您的 Apache 是 2.x,
我的 Apache 是 1.3.27,
在設定上可能有所不同,
因此以上設定僅是提供給您參考一下,
您不妨試試看。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:[問題]"編碼"-->"自動偵測"

文章Guest » 週二 11月 11, 2003 10:06 pm

Tetralet 寫:我在 /etc/apache/httpd.conf 中加入了:

代碼: 選擇全部
AddDefaultCharset Big5


就可以指定 Apache 預設上使用 Big5 的編碼了。

多謝指點!

無效. 即使有效,我也盡量不使用這招. 因為我的網頁可能有GB頁.

按理,Apache不應該擅自篡改或忽略<meta ...charset=big5>這些具強制宣示的tag才對阿?怪哉!
Guest
 

re:[問題]"編碼"-->"自動偵測"

文章redjoe » 週三 11月 12, 2003 7:48 am

上個月我裝Apache時也是這樣..
印象中好像是沒有Big5的編碼.. :crying:
redjoe
快樂的大學生
快樂的大學生
 
文章: 518
註冊時間: 週一 4月 07, 2003 10:15 pm
來自: Taiwan

re:[問題]"編碼"-->"自動偵測"

文章wctang » 週三 11月 12, 2003 11:06 am

Guest 寫:
Tetralet 寫:我在 /etc/apache/httpd.conf 中加入了:

代碼: 選擇全部
AddDefaultCharset Big5


就可以指定 Apache 預設上使用 Big5 的編碼了。

多謝指點!

無效. 即使有效,我也盡量不使用這招. 因為我的網頁可能有GB頁.

按理,Apache不應該擅自篡改或忽略<meta ...charset=big5>這些具強制宣示的tag才對阿?怪哉!


說的沒錯,盡量不要用這招。
事實上, browser 的自動偵測是有優先順序的,但網頁內容中的 charset 設定卻不是第一優先,而是 http response 的 header 中的 charset 設定。這個是 apache 控制,網頁不能控制。只有在 http header 中沒有設定 charset ,browser 才會看網頁中的設定。雖然有點反直覺,可是卻是有道理的。簡單地說,就是,如果你不在接收文件內容前先知道 charset ,也就無法去讀取文件,更別提文件中的 <meta ...charset=big5> 設定了,所以 http header 中的 charset 設定當然是第一優先。

而在 httpd.conf 中設 AddDefaultCharset Big5 是強制 apache 在 header 中送出 big5 的 charset ,其實是不好的作法。比較好的方法應是不讓 apache 在 header 中送出 charset ,而在每一頁中都指定 charset。
更好的作法是讓 apache 在送出 data 前先知道 data 的 charset 和其它的屬性,並在 header 中送出正確的 charset。

下面這個網址有完整的說明:
http://httpd.apache.org/docs-2.0/conten ... ation.html
頭像
wctang
榮譽學長
榮譽學長
 
文章: 49
註冊時間: 週六 4月 19, 2003 11:07 am

re:[問題]"編碼"-->"自動偵測"

文章Guest » 週三 11月 12, 2003 2:00 pm

更好的作法是讓 apache 在送出 data 前先知道 data 的 charset 和其它的屬性,並在 header 中送出正確的 charset。

下面這個網址有完整的說明:
http://httpd.apache.org/docs-2.0/conten ... ation.html

有效! 太方便了!
多謝指導! :finger1:
Guest
 

re:[問題]"編碼"-->"自動偵測"

文章小黑 » 週一 8月 23, 2004 10:47 pm

Guest 寫:
更好的作法是讓 apache 在送出 data 前先知道 data 的 charset 和其它的屬性,並在 header 中送出正確的 charset。

下面這個網址有完整的說明:
http://httpd.apache.org/docs-2.0/conten ... ation.html

有效! 太方便了!
多謝指導! :finger1:


各位大大 , 小弟還是搞不懂怎樣才可以讓 apache 在送出 data 前先知道 data 的 charset, 可以再詳細把指令講解一下嗎?

在 apache.org 中的 documentation 也沒有說明怎樣才可以這樣做, 實在令小弟十分苦惱 ....
小黑
可愛的小學生
可愛的小學生
 
文章: 72
註冊時間: 週日 11月 23, 2003 12:31 am

re:[問題]"編碼"-->"自動偵測"

文章Tetralet » 週二 8月 24, 2004 10:16 am

小黑 寫:各位大大 , 小弟還是搞不懂怎樣才可以讓 apache 在送出 data 前先知道 data 的 charset, 可以再詳細把指令講解一下嗎?

如果我沒有誤解的話,
如果 apache 在送出 data 前就先知道(設定)了 data 的 charset,
那麼很可能會使得 Client 程式誤判 charset,
反而會造成亂碼...

所以個人是建議把 AddDefaultCharset 給關掉可能會是比較理想的...
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:[問題]"編碼"-->"自動偵測"

文章訪客 » 週二 8月 24, 2004 11:37 am

謝謝 Tetralet 兄的回應 , 很久沒到這裡 , Tetralet 兄上一次的文章篇數還是剛破千 , 想來我實在是太久沒來逛了

對了, 說回正題
小弟將 AddDefaultCharset 關掉後, 的確能自動顯示中文

但我覺得 wctang 學長說的是, apache 會先把 html 的 charset 讀一次, 然後再和 browser negotiate , 然後就能自動用正確的 charset, 不知道我理解得對不對

我想這個是需要設定的, 但還是不知道怎樣做說
訪客
 

re:[問題]"編碼"-->"自動偵測"

文章Tetralet » 週二 8月 24, 2004 4:36 pm

Anonymous 寫:謝謝 Tetralet 兄的回應 , 很久沒到這裡 , Tetralet 兄上一次的文章篇數還是剛破千 , 想來我實在是太久沒來逛了

這樣子不行呦。
要多來逛逛呀!

Anonymous 寫:小弟將 AddDefaultCharset 關掉後, 的確能自動顯示中文

但我覺得 wctang 學長說的是, apache 會先把 html 的 charset 讀一次, 然後再和 browser negotiate , 然後就能自動用正確的 charset, 不知道我理解得對不對

我想這個是需要設定的, 但還是不知道怎樣做說

據我所知,
那是用在提供多種語系的國際站台,
即他會依據您所使用的語系而傳送不同的網頁內容給您。

比如說您使用的是中文,則它會傳送中文介面給您。

也就是說您必須在 Server 這裡先行準備非常多種語系的版本,
而等到 Client 上線時,
再由 Apache 決定傳送哪一個網頁給使用者。
如: www.google.com 或是 www.debian.org 就是這樣做的。

以上皆為紙上談兵,
沒有實地測試過,
若有任何誤謬請不吝指教!
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:[問題]"編碼"-->"自動偵測"

文章yungyuc » 週四 8月 26, 2004 7:47 pm

Tetralet 寫:
Anonymous 寫:謝謝 Tetralet 兄的回應 , 很久沒到這裡 , Tetralet 兄上一次的文章篇數還是剛破千 , 想來我實在是太久沒來逛了

這樣子不行呦。
要多來逛逛呀!

Anonymous 寫:小弟將 AddDefaultCharset 關掉後, 的確能自動顯示中文

但我覺得 wctang 學長說的是, apache 會先把 html 的 charset 讀一次, 然後再和 browser negotiate , 然後就能自動用正確的 charset, 不知道我理解得對不對

我想這個是需要設定的, 但還是不知道怎樣做說

據我所知,
那是用在提供多種語系的國際站台,
即他會依據您所使用的語系而傳送不同的網頁內容給您。

比如說您使用的是中文,則它會傳送中文介面給您。

也就是說您必須在 Server 這裡先行準備非常多種語系的版本,
而等到 Client 上線時,
再由 Apache 決定傳送哪一個網頁給使用者。
如: www.google.com 或是 www.debian.org 就是這樣做的。

以上皆為紙上談兵,
沒有實地測試過,
若有任何誤謬請不吝指教!


若要作 content auto-negotiation 的話
apache/mod_python 應該可以很方便地用來作 Type handling

PythonTypeHandler 就能用 Python 撰寫判斷語言的程式
然後再動態生成回應訊息
頭像
yungyuc
可愛的小學生
可愛的小學生
 
文章: 41
註冊時間: 週二 8月 12, 2003 9:14 pm

文章no name » 週一 11月 21, 2005 9:45 am

no name
 

Re: re:[問題]"編碼"-->"自動偵測"

文章訪客 » 週五 1月 06, 2006 10:35 pm

Anonymous 寫:謝謝 Tetralet 兄的回應 , 很久沒到這裡 , Tetralet 兄上一次的文章篇數還是剛破千 , 想來我實在是太久沒來逛了

對了, 說回正題
小弟將 AddDefaultCharset 關掉後, 的確能自動顯示中文

但我覺得 wctang 學長說的是, apache 會先把 html 的 charset 讀一次, 然後再和 browser negotiate , 然後就能自動用正確的 charset, 不知道我理解得對不對

我想這個是需要設定的, 但還是不知道怎樣做說
訪客
 


回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron