CentOS 下中文檔名顯示亂碼問題

2022-09-26 12:42:25 字數 655 閱讀 7917

在windows上使用ftp上傳檔案到linux上,中文名稱在linux系統中顯示為亂碼。雖然將linux的env設定了lang=en_us.utf並且本地的shell客戶端編碼也設定成utf-8,但在shell中(或通過http訪問),仍是亂碼……

原因在於,windows 的檔名中文編碼預設為gbk,壓縮或者上傳後,檔名還會是gbk編碼,而linux中預設檔名編碼為utf8,由於編碼不一致所以導致了檔名亂碼的問題,解決這個問題需要對檔名進行轉碼。

yum install convmv

convmv -f gbk -t utf-8 -r --notest /home/wwwroot

常用引數:

-r 遞迴處理子資料夾

–notest 真正進行操程式設計客棧作,預設情況下是不對檔案進行真實操作

–list 顯示所有支援的編碼

–unescap 可以做一下轉義,比如把%20變成空格

-i 互動模式(詢問每乙個轉換,防止誤操作)

linux下有許多方便的小工具來轉換編碼:

majrgpyeyx文字程式設計客棧內容轉換 iconv

檔名轉換 convmv

m程式設計客棧p3標籤轉換 python-mutagen

本文標題: centos 下中文檔名顯示亂碼問題

本文位址:

CentOS 下中文檔名顯示亂碼

在windows上使用ftp上傳檔案到linux上,中文名稱在linux系統中顯示為亂碼。雖然將linux的env設定了lang en us.utf 8,並且本地的shell客戶端編碼也設定成utf 8,但在shell中 或通過http訪問 仍是亂碼 原因在於,windows 的檔名中文編碼預設為g...

CentOS 中文檔名變成?

首先locale檢視系統當前的語言環境 lc all是乙個巨集,該值是可以不設定的,感覺問題應該處在lc ctype上。根據鏈結上的回答,lc ctype utf 8 是乙個無效的locale name,按照gunnar hjalmarsson所說,應把環境變數中的lc ctype utf 8 這一...

CentOS系統下中文檔名亂碼

從windows上傳到linux的檔案或者目錄,在linux系統中顯示為亂碼。雖然將linux的env設定了lang en us.utf 8,並且本地的shell客戶端編碼也設定成utf 8,但在shell中 或通過http訪問 仍是亂碼 原因在於,windows 的檔名中文編碼預設為gbk,壓縮或...