溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php的文件名能不能加入中文字

發(fā)布時間:2020-07-09 10:33:52 來源:億速云 閱讀:169 作者:Leah 欄目:編程語言

php的文件名能不能加入中文字?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

不建議使用中文文件名!

因為中文會被URL編碼發(fā)送,到服務(wù)器端的時候雖然會解碼,但是如果和你的編碼不一致,就解不出來了。

php的文件名能不能加入中文字

簡單的說,URL中的中文 ,在常見的瀏覽器中,默認(rèn)會以UTF-8編碼進行編碼后發(fā)送到服務(wù)器端!而在中文 windows環(huán)境的服務(wù)器中,解碼URL的時候,卻用的是gb2312編碼進行解碼的,這樣就導(dǎo)致了沒法得到你在地址欄里輸入的中文原文!

所以就會提示找不到文件名了。

如果一定要用中文 ,解決辦法,僅限你本地瀏覽的解決辦法

在瀏覽器中,打開“internet選項“菜單,選擇”高級“,然后找到 “發(fā)送utf-8 URL“,把前面的鉤去掉。然后確認(rèn)。

再重啟瀏覽器。這樣地址欄里的中文就會默認(rèn)以gb2312編碼 進行發(fā)送,這樣服務(wù)器端就能正確找到該中文文件名的文件了

之前網(wǎng)頁的chartset用的是utf-8,文件也用utf-8,然后用fopen()創(chuàng)建一個中文文件名的文件時問題就出來了,文件名都是亂碼!

查看了很多文檔試了不少方法都解決不了,本來想著用別的方法繞過這個問題,忽然腦子里閃過Windows默認(rèn)的文字編碼是ansi,然后再 baidu了一下,證實了這點,所以我的網(wǎng)頁也應(yīng)該是ansi編碼才能使創(chuàng)建的文件名不會是亂碼。

接著就著手驗證,把網(wǎng)頁都用ansi保存,去掉chartset語句,果然ok了,但是網(wǎng)頁的內(nèi)容就成亂碼了,后來想起,這個網(wǎng)頁還include 了別的網(wǎng)頁,把include的網(wǎng)頁也改成ansi保存,哈哈萬事ok

編程這個工作真的很靠積累,如果我以前沒看過Windows默認(rèn)編碼是ansi,那這個問題就不知何年何月才能解決了

ps:< meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > 這個meta標(biāo)記一定要放在<title></title>之前才有效的

后來又想到了一個更好的解決方法,網(wǎng)頁還是用utf-8編碼和保存,只是fopen()里的文件名參 數(shù)單獨給它編下碼就行,php有iconv() 這個改換編碼的程序,把utf-8轉(zhuǎn)成 gb2312就可以避免中文文件名為亂碼了

看完上述內(nèi)容,你們掌握php的文件名能不能加入中文字的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI