今天收到 yungyuc 的留言,告知使用某些瀏覽器瀏覽本站時,中文都會變成亂碼…
>您這個系統kmr xiy 用 Firefox 和 Seamonkey 看 (Windows/Linux 皆然),中文都會變成亂碼。IE 和 Opera 正常 (僅測試 Windows)。
其實這問題出現蠻久了,我的朋友在美國,即使使用 IE(英文版本) 瀏覽我的站台時,也是無法正確顯示中文,也有是網友反應,使用 Firefox 會出現亂碼,但在 Windows 系統下使用 IE 卻沒有問題... 一直都找不出問題的癥結在那裡,後來是本站的一位讀者給了解決方案(實在感謝他!)。不過,我仍不知原理到底為何? (我的 Blog 系統係為 utf-8 的正體中文編碼方式。)
先列出如何讓各種瀏覽器均可以正確顯示中文的設定方式:
- 打開 IE 瀏覽器,在選單中,選擇【工具】【網際網路選項】【一般】。
- 在最下列選項中,選擇【語言】,出現【語言喜好設定】對話框。
- 選擇【新增】,選擇語言為 zh-tw (中文(台灣))。
- 其它瀏覽器亦比照如同之設定方式,也就是一定要新增 “zh-tw” 語言,如此才會送出 Accept-Language:tw,而顯示正確的中文(utf-8)編碼。
Hello bobo:
3Q 3Q~
我要再試試看,亂碼問題造成我諸多困擾。
MUST BE THIS:
first:
meta http-equiv=”Content-Language” content=”zh-tw”>
last:
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
Hi maniac:
我會再試試看您所提的方法,實在感謝!!
簡單看了一下 source, 有可能是在設定的時候選了兩個以上的 locale, 然後在看到有 Accept-Language 的時候, 就選到其它的 locale, 再來就…
因為我沒裝過這一套 blog system, 所以不知道設定要怎麼改, 如果去改程式的話, 理論上到 blogs/inc/_main.inc.php 把這一段 mark 掉就 ok 了: $default_locale = locale_from_httpaccept();
(有沒有效我不知道, 因為我自己沒試過)
Hello maniac:
唉! 真有些失望。
這樣看來,可能就是 Blog 系統(b2Evolution) 本身設計的問題囉?
很明顯不可能是, 因為只要 server 吃到的 header 裡有Accept-Language, 而且不包含 zh-tw 就一定會吐 ? 出來(試過直接連 server 送 request, 它就是這樣子回我的…)
至於為什麼, 大概得去看 source 才知道了
Hello Beata:
耶? 這可能是關鍵之處呢,是否可以請 yungyuc, Beata 測測看呢? 我已經照您的建議給更改順序了。
呼,要真是這問題,實在相當感謝您,這問題困擾已久了~
meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ /
這句meta tag要放在title輸出之前,因為title中有中文…
hi yungyuc:
我相信是 blog 系統的設定問題,只是我一直找不出應該在 b2evolution 系統的哪一個地方作設定。早一點版本的 b2,並沒有這個問題,是直到現在所重新安裝的這個版本後,才出現這個無法正確顯示中文的問題。
那可能不行。我不記得確實的 directive,不過它應該是放在 serverconfig 裡的,所以 virtualhost (namedvirtualhost) 裡面大概不能設。
這個問題得拿到 .conf 檔研究一下才會曉得。
hi yungyunc:
可是 apache 不在我這裡耶,我的 blog 是租借從 ServerZoo,不過,之前租借其它的 ISP 也是遇到一樣的問題。
若是虛擬站台,也可以設定 useragent charset 嗎?
真有意思,我的 FF/Opera 確實是沒有打開 zh-tw locale。不過我只會在您這邊遇到這個問題,所以會到現在才發現自己沒有本地的 locale。
或許你的 apache 把關於 useragent charset 的 autodetection 之類的選項打開了?