海詩(shī)網(wǎng) 頭條熱點(diǎn) linux上傳文件亂碼怎么解決(linuxftp文件亂碼怎么解決)

linux上傳文件亂碼怎么解決(linuxftp文件亂碼怎么解決)

在vim中編輯不同編碼的文件時(shí)需要注意的幾點(diǎn)

本文講解了vim在編輯多字節(jié)編碼文檔(中文)時(shí)需要了解的一些基礎(chǔ)知識(shí)。注意不涉及gvim,僅指字符終端下的vim。

vim編碼的基本知識(shí):

1、有三個(gè)變量:

編碼——該選項(xiàng)用于緩沖文本(您正在編輯的文件)、寄存器、Vim腳本文件等。你可以把‘編碼’選項(xiàng)想象成設(shè)置Vim的內(nèi)部運(yùn)行機(jī)制。

file encoding——該選項(xiàng)是vim在寫(xiě)入文件時(shí)使用的編碼類型。

TERM encoding——該選項(xiàng)表示用于輸出到客戶端終端($ TERM)的編碼類型。

2、這三個(gè)變量的默認(rèn)值:

編碼——與系統(tǒng)當(dāng)前的區(qū)域設(shè)置相同,所以在編輯文件時(shí)要考慮當(dāng)前的區(qū)域設(shè)置,否則要設(shè)置的東西會(huì)更多。

Fileencoding——當(dāng)文件打開(kāi)時(shí),vim自動(dòng)識(shí)別文件的編碼,file encoding是識(shí)別的值。如果為空,則在保存文件時(shí)使用該編碼。如果編碼未被修改,則該值為系統(tǒng)的當(dāng)前區(qū)域設(shè)置。

term encoding——缺省空值,即輸出到終端的內(nèi)容不進(jìn)行編碼轉(zhuǎn)換。

可以看出,在編輯不同代碼的文件時(shí),需要注意的不僅僅是這三個(gè)變量,還有三個(gè)關(guān)鍵點(diǎn):系統(tǒng)當(dāng)前的區(qū)域設(shè)置、文件本身的代碼和自動(dòng)代碼識(shí)別、運(yùn)行vim的客戶端使用的代碼類型。這三個(gè)關(guān)鍵點(diǎn)影響三個(gè)變量的設(shè)置。

如果有人問(wèn):為什么我用vim打開(kāi)中文文檔會(huì)出現(xiàn)亂碼?

答案是不確定的,原因如上所述。如果不知道這三個(gè)關(guān)鍵點(diǎn)和這三個(gè)變量的設(shè)定值,有亂碼是很正常的,沒(méi)有亂碼只是巧合。

我們來(lái)看看常見(jiàn)情況下這三個(gè)關(guān)鍵點(diǎn)的值,以及這種情況下這三個(gè)變量的值:

1、語(yǔ)言環(huán)境——目前,大多數(shù)Linux系統(tǒng)已經(jīng)采用utf-8作為默認(rèn)語(yǔ)言環(huán)境,但也可能不是。例如,一些系統(tǒng)使用中文地區(qū)zh_CN。GB18030當(dāng)區(qū)域設(shè)置為utf-8時(shí),vim啟動(dòng)后編碼會(huì)設(shè)置為utf-8,這是兼容性最好的方式,因?yàn)槿绻褂胾tf-8進(jìn)行內(nèi)部處理,無(wú)論外部存儲(chǔ)編碼是什么,都可以進(jìn)行無(wú)損轉(zhuǎn)換。Locale決定了vim內(nèi)部處理數(shù)據(jù)的編碼,也就是編碼。

2.文檔編碼和自動(dòng)編碼識(shí)別——這方面涉及到各種編碼規(guī)則,就不詳細(xì)說(shuō)了。然而,應(yīng)該理解,文件編碼類型不存儲(chǔ)在文件中,也就是說(shuō)

本文來(lái)自網(wǎng)絡(luò),不代表海詩(shī)網(wǎng)立場(chǎng),轉(zhuǎn)載請(qǐng)注明出處:http://x91880.com/n/134931.html
      

win10未安裝音頻設(shè)備怎么解決(win10高清音頻管理器無(wú)法安裝)

win10系統(tǒng)1903版本自動(dòng)斷網(wǎng)怎么辦

發(fā)表回復(fù)
聯(lián)系我們
聯(lián)系我們

在線咨詢: QQ交談

郵箱: 3587015498@qq.com

工作時(shí)間:周一至周五,9:00-17:30,節(jié)假日休息

關(guān)注微信
微信掃一掃關(guān)注我們
微信掃一掃關(guān)注我們
關(guān)注微博
返回頂部