MT UTF 8 顯示的問題

2021-08-22 03:05:15 字數 995 閱讀 3394

在新的web 伺服器上遇到了 utf-8 的頁面亂碼問題.

問題是這樣的: 遷移到新的web伺服器上之後,發現我的 mt 發布之後(包含中文)從瀏覽器檢視是亂碼.必須要從瀏覽器端手工指定一下編碼為 utf-8 才可以正常顯示.而我的主頁面 頁面**是用的 gb2312.不存在這個問題. 另外乙個比較奇怪的是我的 mt 後台管理顯示的中文都是正常的.而 blog 前台頁面都不正常.

我開始以為是 mt.cfg 設定的問題.於是修改 mt.cfg 的發布編碼為 gb2312.可這樣後台顯示就有問題了.真是一波未平一波又起.於是我恢復到以前的狀態,開始對比後台的頁面和前端的頁面差異並反覆測試沒有結果.接著檢視 apache 的 httpd.conf(我登陸不到主機上,這個是 cometrue 給我的參考).發現 其中的全域性設定了 default charset 為gb2312 . 這個時候找 cometrue 又找不到.對 apache 又不是非常熟悉,鬱悶的睡去.

msn 聯絡 cometrue ,請他在dbanotes這個虛擬主機一項加上一條:adddefaultcharset off . apache的手冊有如下解釋:

當回應資訊中沒有在 http 頭中包含任何關於內容型別的引數時,此指令將會指定乙個字符集的名字並新增進去。這將覆蓋在文件體中通過 meta 標籤指定的字符集。adddefaultcharset off這樣的設定將會禁用此功能。adddefaultcharset on將根據此指令的需要啟用apache內部的預設字符集——iso-8859-1。

因為 mt 的模板機制控制的非常好.每個頁面都有指定字符集的meta 標籤。所以這樣帶來了最大的靈活性。google搜尋了一下,看到有的的經驗是指定 adddefaultcharset gb2312 .這樣擴充套件性就不夠好。一些其他字符集的頁面就會給讀者帶來閱讀障礙。其實這個問題在我第一次用mt的時候也遇到過,當時歪打正著,糊里糊塗的沒注意這個細節。當然,對 http 的機制如果再熟悉一些可能就會直接定位了。

再次謝謝車東的提示!

google+

ie8中position不顯示的問題

ie8中 position relative定義的層不能正常顯示 無意開啟ietester在ie8下測試了乙個頁面,突然發現乙個父級position relative 子級position absolute 的樣式焦點輪播的時候在ie8下居然是錯位的。仔細看了一下,發現ie8居然不認父級的相對定位,...

Atom中文顯示亂碼問題 UTF 8

atom中文顯示亂碼問題 本來就是utf 8檔案,但中文還是顯示不了。換了gbk gb18030也不行。從選單中開啟 edit open your config選項,或者packages setting views open,找到config.cson檔案中的editor子項,或者setting v...

IE8的不能顯示

今天遇到了乙個問題,不是獲取不到值,也不是頁面布局出問題,而是ie8瀏覽器上不能賦值的問題,咔咔的,弄了好久,最後發現,ie8不識別 custlevel text custlevel 這種型別,我不知道你們的是不是如果是的話,就用我下面的解決方法,document.getelementbyid us...