Linux-各種姿勢(less\vi等)打開各種類型的文件(txt/csv/xlsx等)出現不能打開(全亂碼、部分亂碼、二進制文件等)的問題


(一)linux各種中文亂碼解決辦法整理

  遠程登錄服務器用vim在終端下編輯查看文件經常會遇見各種中文亂碼問題。

  做如下設置可基本解決vim中文亂碼問題,首先查看系統對中文的支持locale -a | grep zh_CN輸出樣例,如下zh_CN.gbkzh_CN.utf8vim 只能正確識別列表中的中文編碼文件,如需識別其他編碼類型的中文文件,則需要做系統升級vi ~/.bash_profile文件末尾添加export LANG="zh_CN.UTF-8"export LC_ALL="zh_CN.UTF-8"

  vim與編碼相關的參數:

  fileencoding,用於配置打開文件和保存文件的編碼,但只能有一個值,只適合少數文件都是同種編碼的環境,所以一般不使用fileencodings, 從名字上看就知道是fileencoding的增強版,可以配置多種不同的編碼,常見的配置為,配置好之后,列表中的文本編碼只要合法,都能被vim正確 的讀取,建議配置:set fileencodings=utf-bom,utf-8,gbk,gb2312,gb18030,cp936,latin1encoding,vim內部編碼,vim讀取文件之后,但並不以讀取文件的編碼來處理,而是會轉換成內部編碼的格式,這個編碼一般與操作系統相關,linux下utf-8居多,中文windows下則是gdk,建議配置:set encoding=utf-8 termencoding,vim輸出的編碼,輸出指輸出到操作系統或命令終端等,默認與操作系統的語言編碼一致,如果使用linux命令終端,建議終端和linux系統配置相同的編碼,然后配置相同的termencoding,否則顧全了vim就顧不上shell,不過如果shell不存在中文名文件,則配置終端和 termencoding一致即可,對於windows,能自動的識別gbk和utf-8,不用特殊配置,建議配置:set termencoding=utf-8fileformats,用於區分操作系統,主要是回車\r\n的區別,建議配置:set fileformats=unix,dos

  常見的亂碼有以下幾種情形:

  (1)將windows環境下的文件rz到linux下時文件出現亂碼

    解決方案:

        1.在rz之前使用notepad++將文件格式轉化為UTF-8無BOM格式或者ANSI編碼格式;

        2.set encoding=utf-8;

  (2)secureCRT或者xterm2編輯環境中出現亂碼,只需在會話選項中調節字符編碼為GB2312或者UTF-8

  (3)當對日志文件進行vim編輯時出現亂碼,大多數情況下是因為日志文件的格式為GB2312。

    解決方案:

        1.set encoding=GB2312;

        2如果方案1不起作用的話,調整secureCRT或者xterm2的編輯環境為GB2312

  (4)wget下載文件名亂碼

    解決方案:

        一般情況下加上–restrict-file-names=nocontrol,例如wget --restrict-file-names=nocontrol -m www.xxx.com/

  (5)cat文件正常,vim文件不正常 解決方案:直接寫入/etc/vim/vimrc ,最后一行加上set fileencodings=gb2312,utf-8 set fileencoding=gb2312 set termencoding=utf-8 批量文件轉碼命令:iconv -c -f gbk -t utf-8 $data_path/$item_uv

參考:https://blog.csdn.net/kwame211/article/details/77069378

 

 

 

(二)xls/xlxs/txt/等一切非gbk文件另存為.csv(gbk編碼格式文件)文件,再把.csv文件編碼格式轉化為utf-8文件,這樣Linux才能查看less查看而不亂碼;

(三)可以直接保存為utf-8編碼格式文件,如

  excel怎么保存為utf8編碼格式

  參考:https://jingyan.baidu.com/article/63f236289223e00208ab3da4.html

(四)python  pandas模塊  可以直接讀取excel文件,並處理excel文件和對數據的處理分析;所以,相當於間接跳過了Linux  less|vim 查看問題,直接進入下一步的數據讀取和處理。

 


免責聲明!

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



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