windows的預設編碼為gbk,linux的預設編碼為utf-8
[root@node1 ~]$ cat -a filename
就可以看到windows下的斷元字元 ^m
閒來無聊查詢了以下幾種轉換編碼字符集的方法
1 dos2unix filename
2 sed -i 's/^m//g' filename
3 vim filename
:1,$ s/^m//g
4 cat filename |tr -d 『/r』 > newfile ## ^m 可用 /r 代替
^m 輸入方法: ctrl+v ,ctrl+m
locale命令
程式執行使用一套語言需要有字符集(資料)和字型(顯示),locale是根據計算機使用者所使用的語言(language),所在國家或者地域(territory),以及當地的文化傳統字符集(codeset)所定義的乙個軟體執行時的語言環境。
完全的locale表達方式是 [語言[_地域][.字符集] [@修正值]。
zh_cn.gb2312=中文_中華人民共和國+國標2312字符集。
centos7中
[root@node1 ~]$ locale
locale localectl localedef
[root@node1 ~]$ localectl
list-keymaps list-locales set-keymap set-locale set-x11-keymap status
[root@node1 ~]$ localectl set-locale l
lang= lc_collate= lc_measurement= lc_name= lc_telephone=
language= lc_ctype= lc_messages= lc_numeric= lc_time=
lc_address= lc_identification= lc_monetary= lc_*****=
centos6中檢視現有語言環境(檢視可用語言環境 加選項-a)
[root@meng ~]$ locale
lang=en_us.utf-8
lc_ctype="en_us.utf-8" ## 語言符號及其分類(lc_ctype)
lc_numeric="en_us.utf-8" ## 數字(lc_numeric)
lc_time="en_us.utf-8" ## 時間顯示格式(lc_time)
lc_collate="en_us.utf-8" ## 比較和排序習慣(lc_collate)
lc_monetary="en_us.utf-8" ## 貨幣單位(lc_monetary)
lc_messages="en_us.utf-8" # 主要是提示、錯誤、狀態資訊, 標題, 標籤, 按鈕和選單等(lc_messages)
lc_*****="en_us.utf-8" # 預設紙張尺寸大小(lc_*****)
lc_name="en_us.utf-8" # 姓名書寫方式(lc_name)
lc_address="en_us.utf-8" # 位址書寫方式(lc_address)
lc_telephone="en_us.utf-8" # **號碼書寫方式(lc_telephone)
lc_measurement="en_us.utf-8" # 度量衡表達方式(lc_measurement)
lc_identification="en_us.utf-8" # 對locale自身包含資訊的概述(lc_identification)
lc_all=
設定locale就是設定12大類的locale分類屬性,即 12個lc_。除了這12個變數可以設定以外,為了簡便起見,還有兩個變數:lc_all和lang以及久遠前的language(設定應用程式的介面語言)
它們之間有乙個優先順序的關係:lc_all > lc_ > lang
可以這麼說,lc_all是最上級設定或者強制設定,可以管所有的locale,而lang是預設設定值。
修改/etc/sysconfig/i18n檔案,lang="zh_cn.utf-8"或lang=「zh_cn.gbk」
普通使用者修改 ~/.profile 新增 export lang zh_cn.gbk
或者臨時生效 export lc_all=zh_cn.gbk
三、安裝中文字符集
1、安裝所有與中文支援相關的包
[root@meng ~]$ yum -y groupinstall chinese-support
2、修改字元編碼配置檔案
[root@meng ~]$ vim /etc/sysconfig/i18n
lang="zh_cn.utf-8"
supported="zh_cn:zh:en_us.utf-8:en_us:en:zh_cn.gb18030"
sysfont="latarcyrheb-sun16"
#linuxtype=targeted
lang是language的簡稱,決定系統的預設語言,即系統的選單、程式的工具欄語言、輸入法預設語言等。
sysfont是system font的簡稱,決定系統預設用哪一種字型。
supported變數決 定系統支援的語言,即系統能夠顯示的語言。
需要說明的是,由於計算機起源於英語國家,因此,不管你把這些變數設定成什麼,英語總是預設支援的,而且不管用什麼字型,英文本型總包含在其中。
臨時調整終端亂碼現象:
[root@meng ~]$ lang=""
# lang變數被清空後,系統就預設用英語
或export lang=""
但這種設定只是臨時改變了lang這個bash變數而已。當退出重新登入或者切換到其他字元終端後就無效了。
永久解決的需要修改上面的/etc/sysconfig/i18n配置檔案
最好不要把lang變數簡單的清空,因為這個變數不僅在字元模式下用到,在圖形介面下也用到,簡單清空在字元模式下確實不會有問題,但在圖形介面下,卻會造成中文無法正常顯示的情況,在過去redhat系列的版本中i18n檔案中還有乙個叫language的變數,專門控制圖形介面下的語言設定,現在的fc系列中已經把這兩個變數整合成乙個變數了。
windows下編輯的中文,在linux下顯示為亂碼,解決方法
[root@node1 ~]$ cat /etc/sysconfig/i18n
lang="en_us.utf-8"
sysfont="latarcyrheb-sun16"
修改為:
lang="zh_cn.gbk"
supported="zh_cn.utf-8:zh_cn:zh"
sysfont="latarcyrheb-sun16"
或者:[root@node1 ~]$ vim /etc/profile
export lc_all="zh_cn.gbk"
export lang="zh_cn.gbk"
jenkins上win和linux之前傳輸安裝包
二 建立遠端伺服器 三 在linux獲取最新時間點安裝包 industry heat packname ls home jenkins workspace common service dist service inspection adaptor zip time ctime sort time ...
關於linux和win系統遇到的問題
今天在專案發版本時,遇到了這個問題 程式是多個版本一直迭代,用的是資料夾作版本號,寫sql指令碼放在資料夾,系統啟動執行,有些指令碼前後順序有要求。在乙個建表和查詢的指令碼的順序執行過程中,由於順序錯誤導致指令碼執行不到,資料庫版本公升級不上。在困擾多時,才想起可能是linux 和 win系統中,檔...
關於linux和win下的檔案操作函式小問題
在clion中進行c 檔案操作的時候發現,沒有direct.h和io.h這兩個標頭檔案。無法包含標頭檔案,兩個原因 要麼就是包含路徑不對,但是如果是系統檔案,路徑不應該有問題 那麼就是另外乙個原因,系統裡就不應該有這個標頭檔案,而是用別的方法實現的。網上提供的大部分方法就是find locate c...