奇怪!大家勿必來幫忙
請大家耐心看下去,幫我分析分析。
首先聲明,檔案是utf-8編碼無疑,主機也都是linux。經多次測試——
現在用的兩個主機分別是華夏名網和贏網的,下面的:
愛無限
echo $_GET['str'];
?>
檔案都能顯示中文“愛無限”。代碼接收表現正常。
但我新買了中電的空間,卻發生奇怪的現象,即:
愛無限(這裡str參數——要再urlencode一次)
echo $_GET['str'];
?>
或
愛無限
echo iconv( 'gb2312','utf-8', $_GET['str']);
?>
才能正確顯示中文“愛無限”,是怎麼回事呢!
檔案編碼已是utf-8為什麼還要轉呢,或者說中途怎麼變了呢!
------最佳解決方案--------------------
http 頭資訊中有
MS-Author-Via: DAV
而 DAV 的含義是 The server's preferred method for authoring is WebDAV
WebDAV 是微軟的 http 協議擴充
據此猜測該伺服器總是按 unicode 編碼處理多位元組文字的
對應的中文就是 gbk
------其他解決方案--------------------
瀏覽器是utf-8編碼麼
愛無限 這樣如何
------其他解決方案--------------------
既然你說“勿必來幫忙”,那我就路過算了
提示 ASCII(25)==%
------其他解決方案--------------------
查看一下主機預設的編碼是不是utf8
------其他解決方案--------------------
引用:
瀏覽器是utf-8編碼麼
愛無限 這樣如何
1、要知道,我肯定是用同一個瀏覽器測的,頭兩個主機正常,新主機不正常。
2、還是亂碼,得iconv( 'gb2312','utf-8', $_GET['str']);
怪,本來所傳的%E7%88%B1%E6%97%A0%E9%99%90已是utf-8編碼,接收顯示為什麼還轉碼,是主機系統設定了什麼嗎?
------其他解決方案--------------------
勿來幫忙
------其他解決方案--------------------
引用:
查看一下主機預設的編碼是不是utf8
怎麼查這個呢,請問
------其他解決方案--------------------
1、用echo ini_get('default_charset');查,輸出:utf-8
沒錯。
2、用echo mb_detect_encoding($_GET['str']);查(str.php?str=%E7%88%B1%E6%97%A0%E9%99%90),輸出:CP936
問題出現了!——不是utf-8
------其他解決方案--------------------
引用:
http 頭資訊中有
MS-Author-Via: DAV
而 DAV 的含義是 The server's preferred method for authoring is WebDAV
WebDAV 是微軟的 http 協議擴充
據此猜測該伺服器總是按 unicode 編碼處理多位元組文字的
對應的中文就是 gbk
老大那怎麼辦呢?點拔一下。
------其他解決方案--------------------
好了,聯絡到主機商,主機商給調好了,是它們主機的事。結帖!