日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

(gbk linux)

發布時間:2023/12/3 综合教程 21 生活家
生活随笔 收集整理的這篇文章主要介紹了 (gbk linux) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux怎么看文本的編碼格式?

linux下經常遇到的編碼問題如果你需要在linux中操作windows下的文件,那么你可能會經常遇到文件編碼轉換的問題。windows中默認的文件格式是gbk(gb2312),而linux一般都是utf-8。

查看編碼的方法

方法一:filefilename

方法二:在vim中可以直接查看文件編碼

:setfileencoding

如果你只是想查看其它編碼格式的文件或者想解決用vim查看文件亂碼的問題,那么你可以在

~/.vimrc文件中添加以下內容:

setencoding=utf-8fileencodings=ucs-bom,utf-8,cp936

這樣,就可以讓vim自動識別文件編碼(可以自動識別utf-8或者gbk編碼的文件),其實就是依照fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ascii)編碼打開

文件編碼轉換

多平臺方法:

iconv提供標準的程序和api來進行編碼轉換;

convert_encoding.py基于python的文本文件轉換工具;

decodeh.py提供算法和模塊來談測字符的編碼;

linux下文件編碼轉換:

方法一:

在vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式

:setfileencoding=utf-8

或者

11)設置文件集合,即要對哪些文件進行操作,可以使用通配符,比如我通常是對c/c++源程序進行編碼轉換

:args*.h*.cpp

2)給出要在每個文件上執行的命令,這里是轉換編碼:

:argdosetfenc=utf-8|update

方法二:

iconv轉換

5.案例:

假如說我們將windows下的一個utf-8的文件傳到linux環境下,linux環境下的系統編碼是gb18030,我們cat的時候就會出現亂碼,這個時候就應該想到轉碼了,下面我們來進行試驗:

我們將windows下一個名為utf-8.sh的文件傳到linux系統中,其中utf-8.sh的內容如下:

我是中文編碼utf-8模式~

而linux系統的系統語言設置為:

#cat/etc/sysconfig/i18n

lang=zh_cn.gb18030

sysfont="latarcyrheb-sun16"

這個時候查看一下文件的內容及編碼:

#fileutf-8.sh

utf-8.sh:utf-8unicodetext,withnolineterminators

#catutf-8.sh

锘挎垜鏄?腑鏂囩紪鐮乁tf-8妯″紡~#

#

這個時候我們就需要轉換編碼了,記得使用iconv

#iconv-futf-8-tgb18030utf-8.sh-ogb18030.sh

#catgb18030.sh

??我是中文編碼utf-8模式~#

#filegb18030.sh

gb18030.sh:non-isoextended-asciitext,withnolineterminators

#

convmv就是更改文件名編碼方式的一個工具。

比如

sudoconvmv-fgbk-tutf-8-r–notest/home

就是將/home目錄下原來文件名是gbk編碼方式的全部改為utf-8格式的。這里-f后面為原來的編碼方式,-t后面是要更改為的編碼方式,-r表示這個目錄下面的所有文件,–notest表示馬上執行,而不是僅僅測試而已。另外這命令好像要root才能執行,因此要加上sudo。

linux下怎么查看文件的編碼方式?

一,查看文件編碼:在Linux中查看文件編碼可以通過以下幾種方式:

1.在Vim中可以直接查看文件編碼:set fileencoding即可顯示文件編碼格式。如果你只是想查看其它編碼格式的文件或者想解決用Vim查看文件亂碼的問題,那么你可以在~/.vimrc 文件中添加以下內容:set encoding=utf-8fileencodings=ucs-bom,utf-8,cp936這樣,就可以讓vim自動識別文件編碼(可以自動識別UTF-8或者GBK編碼的文件),其實就是依照 fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ASCII)編碼打開。

2. enca (如果你的系統中沒有安裝這個命令,可以用sudo yum install -y enca 安裝 )查看文件編碼$ enca filenamefilename: Universal transformation format 8 bits; UTF-8CRLF line terminators需要說明一點的是,enca對某些GBK編碼的文件識別的不是很好,識別時會出現:Unrecognized encoding

char類型怎么轉換為string?

C++11的std::wstring_convert配合std::codecvt模板類完全可以解決這個問題,不會出現

@vczh

所說修改了全局locale會導致污染其他庫的問題。

這兩個模板類的功能是:

std::wstring_convert:轉碼器,接收一個類似codecvt描述編碼轉換特性的模板參數,用于將本地化的寬字符wstring和指定編碼的字節化string進行互轉。

std::codecvt:編碼轉換特性類,用在wstring_convert的模板參數中來指定使用哪種編碼。

所以編碼A和B互轉的實現方式就是:借助本地化寬字符串,先將以A編碼的string轉為本地化的wstring,再將本地化的wstring轉為B編碼后的string。

codecvt一般使用下面兩個特化子類:
std::codecvt_utf8<wchar_t>:用于UTF8和本地化wchar_t的互轉
std::codecvt_byname<wchat_t, char, std::mbstate_t>:用于其他編碼(例如GBK)和本地化wchar_t的互轉,類的構造函數需要傳入編碼的locale name,

由于編碼的locale name是操作系統決定的(例如GBK在linux下的locale名可能是"zh_CN.GBK",而windows下是".936"),因此做跨平臺的話仍然要給不同的系統做適配。

這里給一個windows下,GBK string轉UTF8 string的例子:首先將GBK string轉wstring

再將wstring轉為UTF8 string轉碼就完成了。utf8_str里的內容應該是"xE7x83xAB"(燙的UTF8)。

linux怎么看文件的字符集編碼?

可以在命令行執行file命令查看返回信息以便確認文件的字符集編碼。

格式:file 文件名

例如:

# file ABC.log

ABC.log: UTF-8 Unicode text

從結果看該文件是utf-8格式

# file word.txt
word.txt: ASCII text

從結果看該文件是gbk格式

如果不符合要求,可以通過iconv命令更改文件格式。

總結

以上是生活随笔為你收集整理的(gbk linux)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。