linux編譯iconv
㈠ linux下編碼轉換問題,C語言實現,使用iconv函數族
1、iconv的含義是將一個抽象的符號的編碼進行轉換。
但是如果一個符號比如「個」,可能在BIG5的編碼中不存在(繁體字中不同)
GBK包含的是簡體字,BIG5包含的是繁體字,Unicode包含全部,
所以
GBK->Unicode,Big5-Unicode (總是OK)
Unicode->GBK (當裡面僅包含英文及簡體時OK)
Unicode->BIG5 (當裡面僅包含英文及繁體時OK)
GBK->Big5 (基本上不行,除非某些字沒有特別的簡體字)
GBK->Big5是漢字的簡繁轉換,不是編碼轉換,簡體字轉繁體字還有一個問題,一個簡體字可能是對應多個繁體字,這種很難轉換正確。繁體字轉換成簡體字相對難度低。
2、#include <iconv.h>
size_t iconv(iconv_t cd,
char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft);
函數原型, outbuf是一個 char **類型
在函數手冊中:
The iconv() function converts one multibyte character at a time, and for each character conversion it increments *inbuf and decrements
*inbytesleft by the number of converted input bytes, it increments *outbuf and decrements *outbytesleft by the number of converted
output bytes
㈡ linux下怎麼改變文件的編碼格式
1.在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式
:set fileencoding=utf-8
2. enconv 轉換文件編碼,比如要將一個GBK編碼的文件轉換成UTF-8編碼,操作如下
enconv -L zh_CN -x UTF-8 filename
3. iconv 轉換,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如將一個UTF-8 編碼的文件轉換成GBK編碼
iconv -f GBK -t UTF-8 file1 -o file2
查看文件編碼file命令
file ip.txt ip.txt: UTF-8 Unicode text, with escape sequences
一、利用iconv命令進行編碼轉換文件內容編碼轉換 iconv命令用於轉換指定文件的編碼,默認輸出到標准輸出設備,亦可指定輸出文件。 用法: iconv [選項...] [文件...] 有如下選項可用: 輸入/輸出格式規范: -f, --from-code=名稱 原始文本編碼 -t, --to-code=名稱 輸出編碼 信息: -l, --list 列舉所有已知的字元集 輸出控制: -c 從輸出中忽略無效的字元 -o, --output=FILE 輸出文件 -s, --silent 關閉警告 --verbose 列印進度信息 -?, --help 給出該系統求助列表 --usage 給出簡要的用法信息 -V, --version 列印程序版本號 例子: iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt 這個命令讀取aaa.txt文件,從utf-8編碼轉換為gb2312編碼,其輸出定向到bbb.txt文件。
㈢ LINUX下板子需要用到iconv庫,在linux交叉編譯環境下,編譯通過沒有問題,但是拿到板子上
看下iconv用的是哪個庫,在configure的時候把他加上去就可以了
像gcc的話就./configure --gcc=/usr/local/gcc/bin
或者把一些lib庫的路徑放到你的PATH裡面