當前流行的字元編碼格式有: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...