/**
* euckrToUtf8()
*
* @author Ji-hoon Kang(luvflo@gmail.com)
* @date 2008-11-26
*
* @description
* iconv를 사용하여 EUC-KR 문자열을 UTF-8으로 변환합니다.
*
*/
string XpgUtil::euckrToUtf8(const char* szBuff)
{
string retv;
char* outbuf = NULL;
char* out = NULL;
size_t ileft = strlen(szBuff);
size_t oleft = ileft * 2; //TODO: 임시로.. 확인 후 수정요망..
out = outbuf = (char*)calloc(1, oleft + 1);
iconv_t cd = iconv_open("UTF-8", "EUC-KR");
if(cd < 0) {
perror(":");
if(out){
free(out);
out=outbuf=NULL;
}
return retv;
}
int err = iconv(cd, (char**)&szBuff, &ileft, &outbuf, &oleft);
iconv_close(cd);
*outbuf = 0;
if(err >= 0) retv.assign(out);
if(out){
free(out);
out=outbuf=NULL;
}
return retv;
}
* euckrToUtf8()
*
* @author Ji-hoon Kang(luvflo@gmail.com)
* @date 2008-11-26
*
* @description
* iconv를 사용하여 EUC-KR 문자열을 UTF-8으로 변환합니다.
*
*/
string XpgUtil::euckrToUtf8(const char* szBuff)
{
string retv;
char* outbuf = NULL;
char* out = NULL;
size_t ileft = strlen(szBuff);
size_t oleft = ileft * 2; //TODO: 임시로.. 확인 후 수정요망..
out = outbuf = (char*)calloc(1, oleft + 1);
iconv_t cd = iconv_open("UTF-8", "EUC-KR");
if(cd < 0) {
perror(":");
if(out){
free(out);
out=outbuf=NULL;
}
return retv;
}
int err = iconv(cd, (char**)&szBuff, &ileft, &outbuf, &oleft);
iconv_close(cd);
*outbuf = 0;
if(err >= 0) retv.assign(out);
if(out){
free(out);
out=outbuf=NULL;
}
return retv;
}
이올린에 북마크하기
이올린에 추천하기
