2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
顯然GBK無(wú)法轉(zhuǎn)換成BIG5。iconv的含義是將一個(gè)抽象的符號(hào)的編碼進(jìn)行轉(zhuǎn)換。
但是如果一個(gè)符號(hào)比如“個(gè)”,可能在BIG5的編碼中不存在(繁體字中不同)
GBK包含的是簡(jiǎn)體字,BIG5包含的是繁體字,Unicode包含全部,
所以
GBK->Unicode,Big5-Unicode (總是OK)
Unicode->GBK (當(dāng)里面僅包含英文及簡(jiǎn)體時(shí)OK)
Unicode->BIG5 (當(dāng)里面僅包含英文及繁體時(shí)OK)
GBK->Big5 (基本上不行,除非某些字沒(méi)有特別的簡(jiǎn)體字)
GBK->Big5是漢字的簡(jiǎn)繁轉(zhuǎn)換,不是編碼轉(zhuǎn)換,簡(jiǎn)體字轉(zhuǎn)繁體字還有一個(gè)問(wèn)題,一個(gè)簡(jiǎn)體字可能是對(duì)應(yīng)多個(gè)繁體字,這種很難轉(zhuǎn)換正確。繁體字轉(zhuǎn)換成簡(jiǎn)體字相對(duì)難度低。
說(shuō)白了,即使意思一樣,簡(jiǎn)體和繁體也是兩個(gè)字,不能劃等號(hào)。應(yīng)當(dāng)使用簡(jiǎn)繁通。

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
1、iconv的含義是將一個(gè)抽象的符號(hào)的編碼進(jìn)行轉(zhuǎn)換。
但是如果一個(gè)符號(hào)比如“個(gè)”,可能在BIG5的編碼中不存在(繁體字中不同)
GBK包含的是簡(jiǎn)體字,BIG5包含的是繁體字,Unicode包含全部,
所以
GBK->Unicode,Big5-Unicode (總是OK)
Unicode->GBK (當(dāng)里面僅包含英文及簡(jiǎn)體時(shí)OK)
Unicode->BIG5 (當(dāng)里面僅包含英文及繁體時(shí)OK)
GBK->Big5 (基本上不行,除非某些字沒(méi)有特別的簡(jiǎn)體字)
GBK->Big5是漢字的簡(jiǎn)繁轉(zhuǎn)換,不是編碼轉(zhuǎn)換,簡(jiǎn)體字轉(zhuǎn)繁體字還有一個(gè)問(wèn)題,一個(gè)簡(jiǎn)體字可能是對(duì)應(yīng)多個(gè)繁體字,這種很難轉(zhuǎn)換正確。繁體字轉(zhuǎn)換成簡(jiǎn)體字相對(duì)難度低。
2、#include <iconv.h>
size_t iconv(iconv_t cd,
char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft);
函數(shù)原型, outbuf是一個(gè) char **類(lèi)型
在函數(shù)手冊(cè)中:
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
添加回答
舉報(bào)