亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

文件亂碼怎么辦? windows電腦文件亂碼恢復(fù)正常的技巧

  發(fā)布時(shí)間:2024-01-09 11:46:01   作者:佚名   我要評(píng)論
有很多朋友都被windows系統(tǒng)中各式各樣的亂碼所困惑,特別是收到的一些十分重要的郵件、程序、文件時(shí)會(huì)遇到亂碼,登,網(wǎng)站時(shí)會(huì)看到亂碼,下面我們就來看看解決辦法

文件打開是亂碼怎么解決?在我們使用電腦中,都遇到過打開文件后,發(fā)現(xiàn)全是亂碼。遇到這種情況,該怎么解決呢?這里小編整理了一些實(shí)用的文件修復(fù)方法,有需要的朋友可以來看看哦。

個(gè)人建議

修改時(shí)盡量修改自定義選項(xiàng)例如.bash_profile,.vimrc文檔,這樣不會(huì)忘記自己修改了哪里,有時(shí)候某處的修改導(dǎo)致后面出現(xiàn)了新的問題,但卻無法定位。

漢字亂碼現(xiàn)象有4種類型:

1.文本亂碼:是windows系統(tǒng)顯示亂碼,如:菜單、桌面、提示框等。這是由于注冊(cè)表中有關(guān)字體部分的設(shè)置不當(dāng)引起的;

2. 文檔亂碼:是各種應(yīng)用程序,游戲本來顯示中文的地方出現(xiàn)亂碼。 這種亂碼形成的原因比較復(fù)雜,有第1類的亂碼原因,也有可能是軟件中使用的中文動(dòng)態(tài)鏈接庫被英文動(dòng)態(tài)鏈接庫復(fù)蓋處造成的;

3.文件亂碼:主要是指郵件亂碼;

4.網(wǎng)頁亂碼:是由于港臺(tái)的繁體中文大五碼(big5)與大陸簡(jiǎn)體中文(gb2312)不通用而造成的。

文件內(nèi)容亂碼

以.txt文檔為例,直接打開是亂碼,可通過下面方法查看情況,在vim軟件中輸入

#查看當(dāng)前文件編碼
:set fileencoding
fileencoding=gb18030

.vimrc文檔下加入

set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030

此時(shí)文檔會(huì)正確顯示。

解壓文件夾文件名亂碼

對(duì)于windows平臺(tái),編碼格式是GBK,對(duì)應(yīng)的漢字是兩個(gè)字節(jié)長(zhǎng)度。對(duì)于Linux平臺(tái),編碼格式是UTF-8,對(duì)應(yīng)的漢字是3個(gè)字節(jié)。

解壓文件夾的命令

unzip -O CP936 testCode.zip 

對(duì)應(yīng)的解釋

unzip --h
-O CHARSET  specify a character encoding for DOS, Windows and OS/2 archives

命令行亂碼怎么辦?

執(zhí)行以下命令

vim ~/.bash_profile 
#添加下面的命令
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8   
#使得生效,有的讓重啟是一個(gè)意思
source ~/.bash_profile 

使用命令查看當(dāng)前編碼

locale:local encode,即本地編碼的意思。這個(gè)命令不帶任何參數(shù)就是顯示當(dāng)前系統(tǒng)的字符集編碼。也可以設(shè)置環(huán)境變量,全體參數(shù)man locale

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

locale
#LANG LC_*的默認(rèn)值,是最低級(jí)別的設(shè)置,如果LC_*沒有設(shè)置,則使用該值。類似于 LC_ALL。
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
#LC_CTYPE用于字符分類和字符串處理,控制所有字符的處理方式,包括字符編碼,字符是單字節(jié)還是多字節(jié),如何打印等。是最重要的一個(gè)環(huán)境變量。
LC_CTYPE="en_US.UTF-8"
# LC_NUMERIC 非貨幣的數(shù)字顯示格式
LC_NUMERIC="en_US.UTF-8"
#LC_TIME 時(shí)間和日期格式
LC_TIME="en_US.UTF-8"
# LC_COLLATE定義該環(huán)境的排序和比較規(guī)則
LC_COLLATE="en_US.UTF-8"
#LC_MONETARY貨幣格式
LC_MONETARY="en_US.UTF-8"
#LC_MESSAGES提示信息的語言。另外還有一個(gè)LANGUAGE參數(shù),它與LC_MESSAGES相似,但如果該參數(shù)一旦設(shè)置,則LC_MESSAGES參數(shù)就會(huì)失效。LANGUAGE參數(shù)可同時(shí)設(shè)置多種語言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
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它是一個(gè)宏,如果該值設(shè)置了,則該值會(huì)覆蓋所有LC_*的設(shè)置值。注意,LANG的值不受該宏影響。
LC_ALL=en_US.UTF-8

locale -a你可以看看目前系統(tǒng)里支持的字符集,如果不支持,還要安裝奧。當(dāng)前.bash_profile的設(shè)置是

#中文顯示
if [ 1 -eq 1 ];then
LANG=zh_CN.GB18030
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
export LANG LANGUAGE
fi
#英文顯示                                                                                            
if [ 0 -eq 1 ];then
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
fi

字符編碼基礎(chǔ)知識(shí)

最初的計(jì)算機(jī)字符編碼是通過ASCII來編碼的,是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),使用7位二進(jìn)制數(shù)來表示所有的字母、數(shù)字、標(biāo)點(diǎn)符號(hào)及一些特殊控制字符,作為美國(guó)編碼標(biāo)準(zhǔn)來使用。

ISO-8859-1編碼是單字節(jié)編碼,向下兼容ASCII,是許多歐洲國(guó)家使用的編碼標(biāo)準(zhǔn)。其編碼范圍是0x00-0xFF,0x00-0x7F之間完全和ASCII一致,0x80-0x9F之間是控制字符,0xA0-0xFF之間是文字符號(hào)。

Unicode,學(xué)名是Universal Multiple-Octet Coded Character Set(簡(jiǎn)稱UCF),與ISO-8859-1標(biāo)準(zhǔn)兼容。由國(guó)際組織標(biāo)準(zhǔn)制定,作為一種國(guó)際語言編碼標(biāo)準(zhǔn),支持超過十萬個(gè)字符,涵蓋世界數(shù)十種文字系統(tǒng),是一種通用字符編碼標(biāo)準(zhǔn)。很多技術(shù),如Java編程語言、現(xiàn)代操作系統(tǒng)都采用了Unicode編碼。

UTF-8/UTF-16等則是對(duì)Unicode進(jìn)行了編碼,是其一種實(shí)現(xiàn)方式。UTF-8(8-bit Unicode Transformation Format),是一種變長(zhǎng)的編碼方式,它以8位為碼元,用1-6個(gè)碼元對(duì)Unicode進(jìn)行編碼,對(duì)英文字符使用單字節(jié)編碼,對(duì)中文編碼用到三個(gè)字節(jié)來編碼。UTF-16(16-bit Unicode Transformation Format)是用16位為碼元,用1個(gè)或2個(gè)碼元對(duì)Unicode進(jìn)行編碼。
utf-16將字符集劃分為基本多文中平面和輔助平面,基本多文中平面中的字符與Unicode是一致的,不需要轉(zhuǎn)換;處在輔助平面中的碼元(如一些拼音文字或者中日韓表意文字的擴(kuò)充),需要2個(gè)碼元進(jìn)行編碼。

GB2312是國(guó)家制定的漢字編碼標(biāo)準(zhǔn),使用雙子節(jié)進(jìn)行編碼,共收入6763個(gè)漢字和682個(gè)非漢字圖形字符。GBK即對(duì)國(guó)標(biāo)編碼的擴(kuò)展,在GB2312的基礎(chǔ)上進(jìn)行擴(kuò)展形成的,使用雙子節(jié)編碼方式,共收入21003個(gè)漢字,從而大大滿足了漢字使用的需要。

總結(jié):unicode是國(guó)際通用編碼標(biāo)準(zhǔn),可以表示全世界的字符,但其字符集也是最復(fù)雜、占用空間最大的。開發(fā)者可以根據(jù)需要進(jìn)行選擇編碼方式。

參考文獻(xiàn)

原文:https://blog.csdn.net/shijing_0214/article/details/50908144 關(guān)于文件編碼的一些命令

查看文件的編碼:編碼為GB2512

#檢查文件的編碼 
enca test1.txt 
enca -L zh_CN fileName  
Simplified Chinese National Standard; GB2312
  CRLF line terminators

轉(zhuǎn)換文件編碼

enca -L 當(dāng)前語言 -x 目標(biāo)編碼 文件名     
enca -L zh_CN -x utf-8 *   //例如要把當(dāng)前目錄下的所有文件都轉(zhuǎn)成utf-8  
enca -L zh_CN -x UTF-8 file //將文件編碼轉(zhuǎn)換為"UTF-8"編碼  
enca -L zh_CN -x UTF-8 < file1 > file2 //如果不想覆蓋原文件可以這樣
enca -L zh_CN -x utf8 <quad.c >quadTest.c

亂碼-ubuntu下文檔的文件名到windows下變?yōu)開__下劃線

現(xiàn)象:Windows下編輯過的中文文檔,Ubuntu下會(huì)顯示亂碼。

原因:兩個(gè)操作系統(tǒng)使用的編碼不同。Ubuntu下使用的編碼是utf-8,而Windows使用的是gb18030。

ubuntu16.04解決文件中文亂碼問題

1、查看當(dāng)前系統(tǒng)使用的字符編碼

~$ locale
LANG=en_US
LANGUAGE=en_US:
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=

2、查看當(dāng)前系統(tǒng)支持的字符集

:~$ locale -a
C
C.UTF-8
en_US
en_US.iso88591
en_US.utf8
POSIX

3、查看locale文件

:~$ cat /etc/default/locale
#  File generated by update-locale
LANG="en_US"
LANGUAGE="en_US:"  

解決:

1、執(zhí)行l(wèi)ocale-gen zh_CN.UTF-8拉取中文編碼(需要root權(quán)限)

:~$ locale-gen zh_CN.UTF-8
sed: couldn't open temporary file /etc/sedMLPzNn: Permission denied
deployer@RSLog026:~$ sudo su
[sudo] password for deployer:
root@RSLog026:/home/deployer# locale-gen zh_CN.UTF-8
Generating locales (this might take a while)...
zh_CN.UTF-8... done

2、查看現(xiàn)在系統(tǒng)支持的字符集,發(fā)現(xiàn)多了zh_*等中文字符集 

:~$ locale -a
C
C.UTF-8
en_US
en_US.iso88591
en_US.utf8
POSIX
zh_CN
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

3、修改文件/etc/default/locale(必須要改,,開始還以為不該也行,發(fā)現(xiàn)如果不改這個(gè)文件,需要執(zhí)行兩遍第四步操作)

當(dāng)前文件
:~$ cat /etc/default/locale
#  File generated by update-locale
LANG="en_US"
LANGUAGE="en_US:"
改成如下:
:~$ cat /etc/default/locale
#  File generated by update-locale
LANG=zh_CN.UTF-8
#LANGUAGE="en_US:"

4、執(zhí)行sudo dpkg-reconfigure locales命令,由于不能截圖,這里語言描述下了。

選中 zh_CN GB2312,zh_CN.GBK GBK,zh_CN.UTF-8 UTF-8  按空格就是選中,然后tab鍵到ok,點(diǎn)擊ok以后會(huì)跳轉(zhuǎn)到下一界面,選中zh_CN.UTF-8,,然后ok就可以了

接下來重新打開會(huì)話就能正常使用中文了,不用重啟系統(tǒng)。

查看當(dāng)前系統(tǒng)使用的字符編碼

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

查看當(dāng)前系統(tǒng)支持的字符集

locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
zh_CN.utf8
zh_SG.utf8

執(zhí)行l(wèi)ocale-gen zh_CN.UTF-8拉取中文編碼

sudo locale-gen zh_CN.*
Generating locales (this might take a while)...
  zh_CN.GB18030... done
  zh_CN.GB2312... done
  zh_CN.GBK... done
  zh_CN.UTF-8... done
Generation complete.

查看現(xiàn)在系統(tǒng)支持的字符集,發(fā)現(xiàn)多了zh_*等中文字符集

locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_SG.utf8

亂碼-windows下文檔移到linux下文件顯示亂碼

上面的方法可以實(shí)現(xiàn)在gedit軟件下,正確顯示,但是在vim文檔下顯示如下

°üo?μ?Dé?a?úID£??°??·?2?·?ê?

但在gedit軟件中打開實(shí)際上是

包含的虛擬機(jī)ID,及其分布方式

查看文件的編碼方式

file debug_tran.cpp
debug_tran.cpp: C++ source, ISO-8859 text, with CRLF line terminators

由于我的vim 配置里面顯示了文件的格式,我的vim顯示如下

dos	latin1	cpp

經(jīng)過查詢可知:Latin1是ISO-8859-1的別名,有些環(huán)境下寫作Latin-1。此字符集支持部分于歐洲使用的語言,所以中文顯示亂碼。

可以采用下面的命令轉(zhuǎn)換

iconv -f gbk -t utf8 debug_tran.cpp.gbk > debug_tran.cpp.utf

查找新產(chǎn)生的文件

file debug_tran.cpp.utf 
debug_tran.cpp.utf: C++ source, UTF-8 Unicode text, with CRLF line terminators

使用下面的語句查看具體選項(xiàng)

 iconv --help

在windows中打開linux文檔建議使用notepad++文件打開,在里面可以修改不同編碼。

亂碼分類表

相關(guān)文章

最新評(píng)論