字元編碼轉換libiconv庫

2021-08-27 12:57:40 字數 2289 閱讀 5621

當前流行的字元編碼格式有:us-ascii、iso-8859-1、utf-8、utf-16be、utf-16le、utf-16、gbk、gb2312等,其中gbk、gb2312是專門處理中文編碼的。因為在email時使用中文老出現亂碼問題,需要"gb2312"

轉換成"utf-8"格式,所以,需要使用字元編碼轉換,而

libiconv是乙個常用的編碼轉換庫,支援常用的多種編碼之間的轉換。在linux下,工具鏈gcc有專門的libiconv庫,所有不用移植,但在arm-linux下就沒那麼幸運了,需要我們額外移植libiconv庫,不過,過程還是比較簡單的。

一、字元編碼轉換

libiconv

庫介紹

libiconv是乙個常用的編碼轉換庫,支援常用的多種編碼之間的轉換。主要函式有:

#include

iconv_t

iconv_open

(constchar *tocode, const char *fromcode);

size_t

iconv

(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);

inticonv_close

(iconv_tcd);

iconv_open是開啟乙個編碼流,類似於開啟乙個編碼管道(通道),出錯則返回-1;

iconv用於具體輸入的轉換,如果出錯,則返回 -1,否則返回 0;

iconv_close是關閉該管道(通道)。

如果對於大量需要轉換的編碼,上述函式covert不適合該方式,一是記憶體的限制不能一次呼叫,二是若分多次呼叫會頻繁開啟乙個編碼管道(通道),導致資源浪費,最好的辦法還是拆開該函式根據情況使用。

二、

arm-linux

移植過程

2)./configure cc=arm-hismall-linux-gcc --target=arm-linux--host=arm-hismall-linux --prefix=/usr/local/iconv --enable-shared--enable-static

3) make

4) make install

三、例項

unicode.cpp

//#include #include #include #include "./iconv.h"

using namespace std;

// **轉換操作類

class codeconverter

// 析構

~codeconverter()

// 轉換輸出

int convert(char *inbuf, int inlen, char *outbuf, int outlen) };

int main(int argc, char **argv)

; char out1[256] = ;

// gb2312-->utf-8

codeconverter cc0 = codeconverter("gb2312","utf-8");

cc0.convert(gb2312, strlen(gb2312)+1, out0, 256);

cout << "gb2312-->utf-8 in=" << gb2312 << ",out0=" << out0 << endl;

// utf-8-->gb2312

codeconverter cc1 = codeconverter("utf-8", "gb2312");

cc1.convert(out0, strlen(out0)+1, out1, 256);

cout << "utf-8-->gb2312 in=" << out0 << ",out1=" << out1 << endl;

return 0;

}

arm-hismall-linux-g++ unicode.cpp -l./-liconv//靜態庫

字元編碼轉換

這幾天在做個東西,就是關於網路字元編碼轉換的問題,此前這方面一點兒也不懂,頭要的急所以從快入手,先上網了解了一下字元編碼到底是什麼東西,於是知道了內碼轉換,gb2312,big5,unicode等東西,不懂的可以從網上搜搜,我也是搜的,建議大家先看看這個 http www.vckbase.com d...

學習使用libiconv庫

libiconv庫是乙個基於gnu協議的開源庫,主要是解決多語言編碼處理轉換等應用問題。怎樣學習使用libiconv庫?對於剛接觸到人來說,這篇文章不妨去看一看,若已經用到過該庫的人,在應用的過程中可能遇到一些問題,我們可以一起來 我的 是 cnangel gmail.com 幾個函式原型 icon...

php字元編碼轉換

iconv convert string to requested character encoding php 4 4.0.5,php 5 mb convert encoding convert character encoding php 4 4.0.6,php 5 用法 string mb c...