国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 詳解Linux中文亂碼問題終極解決方法

詳解Linux中文亂碼問題終極解決方法

2021-11-22 17:57h2z Linux

本篇文章主要主要介紹了詳解Linux中文亂碼問題終極解決方法,非常具有實用價值,需要的朋友可以參考下。

初入linux的程序員們,經常會受到亂碼的問候。可謂“始亂終棄”。因為亂碼,并且最終放棄了linux的不在少數。好吧,言歸正傳,下面來看一下linux亂碼的具體解決辦法吧。

方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030

該文件在用戶目錄下,對于其他用戶,也必須相應修改該文件。

使用該方法時putty能顯示中文,但桌面系統是英文,而且所有的網頁中文顯示還是亂碼

方法二:
修改/etc/sysconfig/i18n文件 

?
1
2
3
#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"

修改為: 

?
1
2
3
4
5
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

參考:

Linux中文亂碼問題

最近,公司在XP系統于LINUX之間傳數據時出現了中文亂碼問題!

首先,字符集:

漢字編碼:

* GB2312字集是簡體字集,全稱為GB2312(80)字集,共包括國標簡體漢字6763個。 * BIG5字集是臺灣繁體字集,共包括國標繁體漢字13053個。 * GBK字集是簡繁字集,包括了GB字集、BIG5字集和一些符號,共包括21003個字符。 * GB18030是國家制定的一個強制性大字集標準,全稱為GB18030-2000,它的推出使漢字集有了一個“大一統”的標準。

ASCII:

American Standard Code for Information Interchange,美國信息交換標準碼。 目前計算機中用得最廣泛的字符集及其編碼,由美國國家標準局(ANSI)制定。 它已被國際標準化組織(ISO)定為國際標準,稱為ISO 646標準。 ASCII字符集由控制字符和圖形字符組成。 在計算機的存儲單元中,一個ASCII碼值占一個字節(8個二進制位),其最高位(b7)用作奇偶校驗位。 所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。 奇校驗規定:正確的代碼一個字節中1的個數必須是奇數,若非奇數,則在最高位b7添1。

偶校驗規定:正確的代碼一個字節中1的個數必須是偶數,若非偶數,則在最高位b7添1。

UTF:
Unicode 的實現方式不同于編碼方式。 一個字符的Unicode編碼是確定的,但是在實際傳輸過程中,由于不同系統平臺的設計不一定一致,以及出于節省空間的目的,對Unicode編碼的實現 方式有所不同。 Unicode的實現方式稱為Unicode轉換格式(Unicode Translation Format,簡稱為 UTF)。 * UTF-8: 8bit變長編碼,對于大多數常用字符集(ASCII中0~127字符)它只使用單字節,而對其它常用字符(特別是朝鮮和漢語會意文字),它使用3字節。 * UTF-16: 16bit編碼,是變長碼,大致相當于20位編碼,值在0到0x10FFFF之間,基本上就是unicode編碼的實現,與CPU字序有關。

注意:ASCII char (2) ;UTF-8 寬字符 wchar 4倍 。兼容性最好的編碼就是UTF-8! 畢竟GBK/GB2312是國內的標準,當大量使用國外的開源軟件時,UTF-8才是編碼界最通用的語言。

在Linux中通過locale來設置程序運行的不同語言環境,locale由ANSI C提供支持。locale的命名規則為<語言>_<地區>.<字符集編碼>,如zh_CN.UTF-8,zh代表中 文,CN代表大陸地區,UTF-8表示字符集。

在locale環境中,有一組變量,代表國際化環境中的不同設置:

1. LC_COLLATE
定義該環境的排序和比較規則

2. LC_CTYPE
用于字符分類和字符串處理,控制所有字符的處理方式,包括字符編碼,字符是單字節還是多字節,如何打印等。是最重要的一個環境變量。

3. LC_MONETARY
貨幣格式

4. LC_NUMERIC
非貨幣的數字顯示格式

5. LC_TIME
時間和日期格式

6. LC_MESSAGES
提示信息的語言。另外還有一個LANGUAGE參數,它與LC_MESSAGES相似,但如果該參數一旦設置,則LC_MESSAGES參數就會失效。 LANGUAGE參數可同時設置多種語言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。

7. LANG
LC_*的默認值,是最低級別的設置,如果LC_*沒有設置,則使用該值。類似于 LC_ALL。

8. LC_ALL
它是一個宏,如果該值設置了,則該值會覆蓋所有LC_*的設置值。注意,LANG的值不受該宏影響。

例子:

設置前,使用默認locale: 

代碼示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@ahlinux ~]# locale
LANG="POSIX"
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

設置后,使用zh_CN.GDK中文locale:

代碼示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@ahlinux ~]# export LC_ALL=zh_CN.GBK
[root@ahlinux ~]# locale
LANG=zh_CN.UTF-8
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

"C"是系統默認的locale,"POSIX"是"C"的別名。所以當我們新安裝完一個系統時,默認的locale就是C或POSIX。
在Debian中安裝locales的方法如下:

  •  通過apt-get install locales命令安裝locales包
  • ·安裝完成locales包后,系統會自動進行locale配置,你只要選擇所需的locale,可以多選。最后指定一個系統默認的locale。這樣系統就會幫你自動生成相應的locale和配置好系統的locale。
  • 增加新的locale也很簡單,用dpkp-reconfigure locales重新配置locale即可。
  • 我們也可手動增加locale,只要把新的locale增加到/etc/locale.gen文件中,再運行locale-gen命令即可生成新的 locale。再通過設置上面介紹的LC_*變量就可設置系統的locale了。下是一個locale.gen文件的樣例。

代碼示例:

?
1
2
3
4
5
6
7
# This file lists locales that you wish to have built. You can find a list
# of valid supported locales at /usr/share/i18n/SUPPORTED. Other
# combinations are possible, but may not be well tested. If you change
# this file, you need to rerun locale-gen.
#
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8

在我看來只要搞清楚LANG和SUPPORTED就OK了,其他可能平時也用不太多。

這里再介紹下如何設置環境變量的。

修改 /etc/sysconfig/i18n 文件,如

代碼示例:

?
1
2
LANG="en_US.UTF-8",xwindow會顯示英文界面,
LANG="zh_CN.GB18030",xwindow會顯示中文界面。

還有一種方法 cp /etc/sysconfig/i18n $HOME/.i18n

修改 $HOME/.i18n 文件,如

代碼示例:

?
1
2
LANG="en_US.UTF-8",xwindow會顯示英文界面,
LANG="zh_CN.GB18030",xwindow會顯示中文界面。

這樣就可以改變個人的界面語言,而不影響別的用戶

修改后的/etc/sysconfig/i18n 文件為:

代碼示例:

?
1
2
3
4
5
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
LC_ALL="en_US.UTF-8"
export LC_ALL

設置完畢后重啟或者用rc.local使生效

或修改登錄用戶的.bash_profile文件加入

代碼示例:

?
1
2
export LANG=zh_CN.GB18030
export LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN

一定要知道Windows XP 是GB2312的編碼,如果你的服務器字符集不是這個,估計就會是亂碼,所以要調整。

有些人在調整的時候,說我改了系統環境變量,結果造成用戶內容顯示亂碼,無非解決的方法就是兩個:

1.用iconv轉化為目前的編碼

2.用你原來使用的編碼

看了這兩條,你肯定必須要明確,你原來的字符編碼是如何的。說來說去,無非就是LANG SUPPORTED 和你原文件字符集的編碼:)

當然了locale -a你可以看看目前系統里支持的字符集,如果不支持,還要安裝奧。

前兩個方法很實用,我試驗過。其他方法都是在網上搜到的,呵呵。。。

****************************

就是從數據庫中取出來時,在存入linux的文件里時,在字符流時制定編碼格式。代碼如下:

代碼示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FileOutputStream fos=new FileOutputStream(new File(filePath),true);
Writer out=new OutputStreamWriter(fos,"UTF-8");
out.write(s);
out.write("\n");
out.flush();
fos.close();
out.close();
**********************
vi .bash_profile
export lang=zh_CN
vi /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:zh_CN.GB18030:zh_CN:zh:zh_TW.big5:zh_TW:zh:ja_JP.UTF-8:ja_JP:ja:ko_KR.eucKR:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"

只改第一個不管用,好像第二個尤其重要,必須改。

1、console終端亂碼

在/etc/profile文件的最后一行添加如下內容:

代碼示例:

?
1
export LC_ALL="zh_CN.GB18030"

2、xwindow終端亂碼

在/etc/sysconfig/i18n文件的最后一行添加如下內容:

代碼示例:

?
1
export LC_ALL="zh_CN.GB18030"

亂碼分兩種情況:

1.終端(純shell界面)的亂碼

代碼示例:

?
1
2
vi /etc/profile
export LC_ALL="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"

保存退出,reboot系統即可..

2.X-window(圖形界面)的亂碼

代碼示例:

?
1
2
3
vi /etc/sysconfig/i18n
LANG="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"

保存reboot即可...

新發了臺linux虛擬機,用VIM出現了中文亂碼問題,查找了資料,解決方法:

?
1
vi /etc/sysconfig/i18n

將內容改為 

代碼示例:

?
1
2
3
4
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

這樣中文在SSH,telnet終端就可以正常顯示了

其中,主要修改的內容主要為zh_CN.GB18030,其中要注意VI個性的內容為根目錄下,要注意權限。

每次裝完linux,用SSH連接,中文總是顯示亂碼。

解決方法:編輯/etc/sysconfig/i18n,將其中的 LANG="zh_CN.UTF-8" 改為 LANG="zh_CN.GB2312" 。

斷開重新連接。

附1,linux下中文亂 碼問題解決方案。

從windows傳過來的文件拷到linux下是亂碼,俺們又想在linux下顯示中文,怎么辦呢?我們首先進行測試,linux下的中文是否可以正常顯 示?答:yes. 所以問題就比較明顯了,windows下拷過來的不能顯示,說明windows下和linux下支持的格式是不相同的.
linux下一般是采用utf-8的編碼,而我們在windows上編輯文件時是gb2312的編碼。所以導致中文編碼會亂碼。要更正這個問題實際上很簡單只要把文件轉換成utf-8編碼格式然后再導入就ok啦。

然后使用如下命令進行轉換:

?
1
iconv -f gb2312 -t utf-8 test.txt> testutf8.tzt

(-f 就是源編碼,-t 轉換目標編碼,test.txt源文件,testutf8.txt生成目標編碼文件)

備注:使用 iconv -l 可以查看系統支持編碼格式。當然也可以添加其中的編碼格式:

默認為utf8,如果想用其他編碼如GBK

手動更改配置文件的命令:

?
1
shell> vi /etc/sysconfig/i18n

將LANG="zh_CN.UTF-8"修改為:

?
1
LANG="zh_CN.GBK"

保存并關閉,運行下面的命令使配置生效:

?
1
shell> source /etc/sysconfig/i18n

將終端字符編碼顯示為簡體中文:

?
1
shell> vi /etc/profile.d/chinese.sh

添加下面這行:

代碼示例:

?
1
2
export LC_ALL=zh_CN.GBK
shell> source /etc/profile.d/Chinese.sh

附2,解決Linux操作系統下Java的中文亂碼問題 。

在jdk15以后,只需在~/jre/lib/fonts/下建一個fallback目錄,把你想在java中使用的字體烤貝到這個目錄中即可

以下方法在fc6下測試通過,假設用戶的jre路徑為 /usr/java/jdk1.6.0_03/jre/

代碼示例:

?
1
2
cd /usr/java/jdk1.6.0_03/jre/lib/fonts
sudo mkdir fallback

將C:\WINDOWS\Fonts\simsun.ttc拷貝到 /usr/java/jdk1.6.0_03/jre/lib/fonts/fallback文件夾內
export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312是最有效的。

1.不管用那種ssh客戶端,字體設定一定要設為可以顯示中文的字體。

2.遠程的locale一定要設置為LANG=zh_CN.UTF-8

修改/etc/profile

增加這一行

?
1
export LC_ALL=zh_CN.GBK

附3,SSH顯示中文亂碼問題

1)、打開/etc/sysconfig/i18n

設置為:

代碼示例:

?
1
2
3
4
5
LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

其中LANG="zh_CN.GB2312" 是必須的(如果你不想讓中文亂碼的話!!!)

其它的可以按照自已的需求來改變。

2)、打開smb.conf

添加:

代碼示例:

?
1
2
3
display charset=cp936
unix charset=cp936
doc charset=cp936

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品h | 成人免费在线电影 | 91中文字幕在线 | 日本中文字幕视频 | 欧洲一区二区三区 | 不卡的一区二区 | 免费国产黄色大片 | 日本高清中文字幕 | 欧美二三区| 亚洲欧美在线一区 | 午夜免费视频福利 | 欧美日韩国产综合视频 | 国产一区二区三区精品久久久 | 亚洲精品一区二区三区在线 | 精品在线一区二区 | 成人精品免费视频 | 玖玖综合网 | 久久精品国产99国产精品 | 免费一级毛片 | 欧美在线观看免费观看视频 | 人一级毛片 | 国产一级片免费观看 | 久久成人国产精品 | www,四虎| 亚洲男女视频在线观看 | 中国黄色片在线观看 | 亚洲精品白浆高清久久久久久 | 羞羞视频免费网站 | 国产伦精品一区二区三区四区视频 | 在线一级片 | 国产欧美日韩在线 | 蜜桃视频网站入口 | 日本不卡高字幕在线2019 | 久久精品一级毛片 | 黄色美女在线观看 | 亚洲精品久久久久久久久久久 | 色影视| 一区二区三区视频 | 日韩精品视频在线播放 | 精品一区二区免费视频 | 国精品一区二区三区 |