Vim 字符集問題

2022-03-10 01:30:04 字數 1250 閱讀 1537

使用centos中的vim 文字編輯器出現中文亂碼的問題。

凡是字元亂碼的問題,都是字符集不匹配的問題引起的。這裡的字符集不匹配只的是檔案的編碼和解碼方式不匹配,同時可能涉及到不只一次的解碼過程。

計算機中的所有檔案都是以二進位制格式儲存的(計算機可識別內容)。我們在讀取檔案內容時,均是通過不同的軟體讀取的,軟體在讀取檔案內容時,需要使用不同的字符集來識別檔案中的人類可識別內容。字符集就是乙個數值與人類可識別基礎字元的對照表。

乙個檔案 有自己的編碼字符集,編輯器在讀取檔案時有自己的字符集,在linux系統中還會涉及到終端的顯示字符集。

在xshell終端中使用vim開啟檔案時,中文出現亂碼。分析原因時要考慮:1.檔案的原始編碼方式 2.vim開啟檔案的編碼方式 3. xshell 終端的編碼方式。

在 vim 中主要有三個和字符集相關的變數: encoding(enc) , fileencoding(fenc) , fileencodings(fencs).  

fileencodings:開啟檔案的時候進行解碼的猜測列表。

fileencoding :用於設定儲存檔案時使用的字符集。

例如:可以使用下面的命令

1.  :edit ++enc=[filename]   以指定的編碼格式重新開啟檔案。即在這種字符集下編輯檔案。

2.  :write ++enc=[filename]  以指定的編碼格式儲存檔案。

以上兩種方式是可以暫時 覆蓋 下邊 3.4 兩種方式指定的預設 編輯、寫入時預設的字符集。

3. :set encoding[=]  指定編輯檔案的字符集。(顯示時)

4. :set fileencoding[=] 指定儲存檔案的字符集。(寫入時)

我們使用vim開啟編輯檔案時,檔案時存在於記憶體中的,當編輯完成時 使用  :w 命令將內容寫入磁碟,所以會有encoding 和 fileencoding 兩種引數的,分別設定開啟檔案編輯時及儲存內容到硬碟時使用的字符集。

vim 在開啟檔案是 首先根據變數 fileencodings 中的 字符集類別 猜測正確的字符集,然後將fileencoding 變數設定成選中的字符集。如果fileencodings 沒有設定,選擇用系統的字符集 (locale 命令檢視)。之後fileencoding 被設定為此編碼。

使用vim開啟乙個檔案,可以使用 [:set fileencodings]  ,[:set fileencoding] , [:set encoding] 檢視當前變數的配置資訊。

在centos中配置vim的三個變數:/etc/vimrc 檔案中。

mysql字符集問題 mysql字符集問題

我們新建mysql資料庫的時候,需要指定資料庫的字符集,一般我們都是選擇utf8這個字符集,但是還會又乙個utf8mb4這個字符集,好像和utf8有聯絡,今天就來解析一下這兩者的區別。起源mysql在5.5.3之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來相容...

mysql字符集問題 mysql字符集問題

用show variables like char 檢視mysql的引數,結果應如下 mysql show variables like char variable name value character set client gbk character set connection gbk ch...

mysql字符集問題 MySql字符集問題

mysql字符集問題 xinjinlong 2010 11 14 22 10 47 閱讀 1334 上次說了一下c從mysql裡面讀取資料,這次在介紹一下如何把mysql的字符集設定為utf8 第一 檢視自己mysql的字符集 mysql show variables like character ...