中文名文件上傳到linux服務器上以后文件名會亂碼(openoffice)


1、中文名文件上傳后保存在linux服務器上文件名會亂碼,但是我們通過SSH直接對服務器上的一個文件進行重命名是可以使用中文的,而且顯示出來是正確的,這說明服務器是可以支持中文的。

2、而為什么上傳的中文名文件保存起來以后文件名會亂碼呢?這是因為Windows的默認編碼為GBK,Linux的默認編碼為UTF-8。在Windows下編輯的中文,上傳到Linux下就會顯示為亂碼。為了解決此問題,修改Linux的默認編碼為GBK,就能夠成功的解決亂碼問題。

 

首先運行locale查看本地編碼方式:

方式一:

[root@localhost hins]# locale

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

方式二:

[root@localhost hins]# echo $LANG
zh_CN.GBK

這是服務器默認的編碼,根據后面的方法修改后應該為:
(我修改為GBK以后的linux服務器的編碼)

 

方法如下:

方法1:(試了一下,編碼方式沒有改變,可能是要重啟服務器才能生效)
vi /etc/sysconfig/i18n
默認為:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"


修改為:
LANG="zh_CN.GBK"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
SYSFONT="latarcyrheb-sun16"


方法2:(推薦這種方法,不用重啟服務器)
vi /etc/profile

export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"

生效:source /etc/profile

 

[root@localhost hins]# locale
LANG=zh_CN.GBK
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=zh_CN.GBK

 

運行locale指令得到當前系統編碼設置的詳細資料。

一、locale的五臟六腑


1、 語言符號及其分類(LC_CTYPE)
2、 數字(LC_NUMERIC)
3、 比較和排序習慣(LC_COLLATE)
4、 時間顯示格式(LC_TIME)
5、 貨幣單位(LC_MONETARY)
6、 信息主要是提示信息,錯誤信息, 狀態信息, 標題, 標簽, 按鈕和菜單等(LC_MESSAGES)
7、 姓名書寫方式(LC_NAME)
8、 地址書寫方式(LC_ADDRESS)
9、 電話號碼書寫方式(LC_TELEPHONE)
10、度量衡表達方式(LC_MEASUREMENT)
11、默認紙張尺寸大小(LC_PAPER)
12、對locale自身包含信息的概述(LC_IDENTIFICATION)。


二、理解locale的設置


設定locale就是設定12大類的locale分類屬性,即 12個LC_*。除了這12個變量可以設定以外,為了簡便起見,還有兩個變量:LC_ALL和LANG。


它們之間有一個優先級的關系:LC_ALL > LC_* > LANG


可以這么說,LC_ALL是最上級設定或者強制設定,而LANG是默認設定值。


三 具體設定locale的方法(zh_CN.UTF-8、zh_CN.GBK)


freebsd的設置:


1.GDM登錄改為終端登錄后startx啟動圖形桌面


2.在~/.cshrc中增加如下語句,(根據自己使用的shell進行相應設置)


setenv LANG zh_CN.GBK
setenv LC_ALL zh_CN.GBK
setenv LC_CTYPE zh_CN.GBK


3.修改/etc/fstab的默認值:


linux 設置:


1.修改/etc/sysconfig/i18n文件,LANG="zh_CN.UTF-8"或LANG="zh_CN.GBK"


普通用戶修改~/.profile


...
export LANG zh_CN.GBK
...


2.修改/etc/fstab的默認值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM