請教如何讓apache server能接受中文名稱檔案的請求?【求助】



贊助商連結


頁 : [1] 2 3 4

b90220208
2004-05-29, 04:29 PM
如題,請教如何讓apache server能接受中文名稱檔案的請求?

我用PHP寫了個簡單的瀏覽目錄程式,其中每個檔案是以
<a href="http://my IP/<? echo "檔案所在路徑"; ?>">檔名</a>
的方式藉由browser去瀏覽它...
但是,只要碰上檔案名稱有中文字時就無法瀏覽

改成這樣:
<a href="http://my IP/<? echo rawurlencode("檔案所在路徑"); ?>">檔名</a>

或是換成: urlencode()

都不行.

贊助商連結


ActionFire
2004-05-30, 08:07 AM
IE 的進階選項中把 永遠將 URL 傳送成 UTF-8 打勾就可以了
這是IE使用上的問題,建議還是用英文檔名避免不必要的問題

b90220208
2004-05-31, 10:47 AM
最初由 ActionFire 發表
IE 的進階選項中把 永遠將 URL 傳送成 UTF-8 打勾就可以了
這是IE使用上的問題,建議還是用英文檔名避免不必要的問題
感謝您的指點:
可是你知道嗎...我原來IE的utf-8選項就有勾起來了,更讓我不解的是,
當我將之取消後竟才可以在URL中用中文字元!!

只是我不懂...,微軟對url用utf-8的解釋是:勾選該項可讓使用者交換任何語言字元的URL網際網路位址.....

為何反倒是取消該項後才能使用中文字元的URL呢 ?

b90220208
2004-05-31, 11:23 PM
我有個想法不知對不對,在我將引許utf-8的URL選項勾起來後,之所以無法瀏覽中文路徑檔案是因網址已引許中文字元了,因而網址列的請求就直接送往Apache,或許是apache無法接受這樣的請求(看不懂所請求的檔案相關路徑).

而取消utf-8 url選項後,瀏覽器會自動在送出請求前先對含有非西歐語系字元的URL進行編碼,因此Apache就沒有看不懂請求的問題,也就能正常瀏覽含中文字元路徑的檔案了.

所以若要享有中文字元URL的功能(也就是啟動IE的UTF-8 url),還得視Apache能不能處理這樣的請求.若如此,那麼apache又該做些什麼設定呢?...否則一切不是白搭.

不知我這樣想對不對啦...希望了解原由的人能不吝指點一下(畢竟已耗了滿長的時間在這件事,沒弄懂實在很可惜)...

simonyang
2004-06-01, 08:14 PM
其實是微軟自作主張.....將XP的 UTF-8 的選項預設變成開啟......
(好像是IE6.0以後的都預設開啟)
導致很多中文路徑出問題......

以前並沒有這種問題的

這個問題我也解決不掉∼所以我都是用英文目錄ㄉ路徑

mus000
2004-06-01, 08:22 PM
把 utf-8 傳送中文url關掉吧。
那種東西,連微軟自己出的 IIS 支援度都有問題了,更何況是 Apache。

ActionFire
2004-06-02, 02:26 AM
其實如果您用的是一般使用的話並不需要特別將中文檔名使用 PHP 解碼函式去做, 只是多增加一次解碼成亂碼罷了

您找的方向可能有錯誤, 如果您要使用跨語系使用的話, 建議您用程式去判斷使用者的瀏覽器再決定
是否編解碼這樣就不會有使用上的問題

b90220208
2004-06-04, 06:14 PM
最初由 ActionFire 發表
其實如果您用的是一般使用的話並不需要特別將中文檔名使用 PHP 解碼函式去做, 只是多增加一次解碼成亂碼罷了

您找的方向可能有錯誤, 如果您要使用跨語系使用的話, 建議您用程式去判斷使用者的瀏覽器再決定
是否編解碼這樣就不會有使用上的問題
感謝您回應,
您的意思是當利用url傳送有中文字元之資料時不需要使用urlencode()是嗎?

emilee
2004-06-07, 02:20 AM
如果是win下架apache不要用2.0以上的..改用1.多版的
linux下就沒有關係了..!

ActionFire
2004-06-08, 09:01 PM
最初由 emilee 發表
如果是win下架apache不要用2.0以上的..改用1.多版的
linux下就沒有關係了..!

以上是錯誤的

Apache2 本身支援使用雙位元碼, 通常會出現亂碼是因為網頁軟體事先幫你解碼
所以你看的雖是中文但其實是已解碼之字元組, 您可用 NotePad 試試就知
只要設定的語系與字元組是正確的, 中文自然不會是亂碼TEST (http://action.sytes.net/test.html)