西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程Linux → 如何讓Nginx支持中文文件名

如何讓Nginx支持中文文件名

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:百度搜索時(shí)間:2013/6/14 22:28:51字體大。A-A+

作者:西西小蛇點(diǎn)擊:481次評(píng)論:2次標(biāo)簽: Nginx

NginxV1.8.1 官方穩(wěn)定版
  • 類型:服務(wù)器區(qū)大。1.2M語言:英文 評(píng)分:.9
  • 標(biāo)簽:
立即下載

我們知道,web服務(wù)器處理靜態(tài)文件的請(qǐng)求是非常高效的,特別是nginx,它宣稱“支持高達(dá) 50,000 個(gè)并發(fā)連接數(shù)的響應(yīng)”。

中何讓Nginx支持中文.

首先得讓你的系統(tǒng)有中語語言包:

設(shè)置前可以執(zhí)行:locale 看一下,如果顯示是en_US.UTF-8,即是正常,不用按下面的步驟設(shè)置。如果顯示其他編碼需要按如下步驟設(shè)置。

CentOS

編輯/etc/sysconfig/i18n 文件,內(nèi)容修改為:(可以使用vi、nano或winscp圖形管理軟件,依個(gè)人口味選擇)

LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

保存,重啟系統(tǒng)。

Debian

apt-get install -y locales
dpkg-reconfigure locales

執(zhí)行dpkg-reconfigure locales后會(huì)出現(xiàn)如下對(duì)話框:

用向下的方向鍵找到en_US.UTF-8 UTF-8,按空格選擇,再按回車鍵。

再按向下鍵選擇en_US.UTF-8,再按回車鍵確認(rèn),重啟系統(tǒng)。

Ubuntu

編輯/etc/default/locale文件,修改內(nèi)容為(沒有的話創(chuàng)建一個(gè)):

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

保存,再執(zhí)行:

locale-gen en_US en_US.UTF-8

重啟系統(tǒng)。

執(zhí)行:locale 看一下是否顯示是en_US.UTF-8,如果報(bào)錯(cuò),請(qǐng)?jiān)诒疚姆答仭0匆陨喜襟E設(shè)置好后即可支持中文,可以上傳中文的文件或中文的目錄。


在nginx.conf文件里配置的字符集也是utf-8
server {
listen 80;
server_name test.cn;
root /data;
index index.html index.jsp;
charset utf-8;
……

ay%PM'G+U0
客戶端用的是secureCRT,用的字符集改為utf-8,用uft-8后再用rz上傳文件,在ie下中文可以正常顯示了。

注意:

如果中文文件名是gb2312的需要轉(zhuǎn)換成utf-8.(注是文件名,不是文件內(nèi)容)。使用convmv轉(zhuǎn)換,(如果找不到這個(gè)命令,光盤中有這個(gè)包 convmv-1.10-1.el5.noarch.rpm)convmv -fGBK -tUTF8 -r--notesttarget

其中-f是源編碼,-t是目標(biāo)編碼,-r是遞歸處理目錄,–notest是不移動(dòng),實(shí)際上對(duì)文件進(jìn)行改名(actually do rename the files),target是目標(biāo)目錄。其余參數(shù)可以參考man或者-h。

如果是在沒有更改編碼前上傳的文件,設(shè)置好后依然會(huì)是亂碼的,建議重新上傳一下文件。如果沒有原來文件的備份可以使用下面命令進(jìn)行轉(zhuǎn)換:for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done 。

其中*.html為要轉(zhuǎn)換的文件類型,也可以更換為*.txt,*.rar 主要是看你是什么文件了,里面的GBK為源文件的編碼類型,如果不知道源文件的編碼類型可以執(zhí)行:file -bi 文件名 。

如果想在Windows下改的話其實(shí)也是可以的Editplus就有批量修改文件編碼的功能,其他的軟件可能也有此類功能,可以自行研究一下。

如果是目錄的話,目前好像是沒有辦法進(jìn)行轉(zhuǎn)換。

還有一個(gè)問題,如果是html之類的網(wǎng)頁文件,如果原來是網(wǎng)頁內(nèi)容是gb2312或類似的非utf-8的編碼,先要將網(wǎng)頁里面的charset 改為charset=utf-8,再轉(zhuǎn)換文件編碼,否則網(wǎng)頁還是會(huì)亂碼的。

 convmv 可以從http://j3e.de/linux/convmv 下載,

  wget http://j3e.de/linux/convmv/convmv-1.14.tar.gz

  tar -zxvf convmv-1.14.tar.gz

  cd convmv-1.14

  make clean;

  make install;

  如:

  ./convmv -f GB2312 -t UTF-8 -r --nosmart --notest userfiles/*.*

  以上表示 userfiles下的所有文件的文件名由GB2312轉(zhuǎn)換為UTF-8

 

   對(duì)于文件內(nèi)容的字符集轉(zhuǎn)換可以使用iconv

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(2)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)