Thursday, December 19, 2013

How will a string from GBK to UTF-8?

May I ask how in Objective-C string encoding conversion?
For GBK pages, hoping to convert its content into UTF-8.
PHP processing is very simple, but it actually could not find Objective-C methods.

Is there any way to transcode it?

Thank you!

Reply:
Call: GBKToUTF8 (str object, "gb2312", "utf-8");

int GBKToUTF8 (std :: string & gbkStr, const char * toCode, const char * fromCode)
{

iconv_t iconvH;
iconvH = iconv_open (fromCode, toCode);
if (iconvH == 0)
{
return -1;
}

const char * strChar = gbkStr.c_str ();
const char ** pin = &strChar;
size_t strLength = gbkStr.length ();
char * outbuf = (char *) malloc (strLength * 4);
char * pBuff = outbuf;

memset (outbuf, 0, strLength * 4);
size_t outLength = strLength * 4;
if (-1 == iconv (iconvH, pin, & strLength, & outbuf, & outLength))
{
iconv_close (iconvH);
return -1;
}
gbkStr = pBuff;
iconv_close (iconvH);
return 0;
}

You try

No comments:

Post a Comment