Contents

Develop
2013.04.23 15:49

[c] UTF-8을 EUC-KR로 변환.. (iconv)

Views 20199 Comment 0
Atachment
Attachment '1'
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

첨부된 파일은 아래 내용과 같이 make 버전으로 심플하게 수정한것도 포함됨..

iconv 라이브러리 좋은 사용 예제..

/*
iconv를 활용한 코드 변환 (EUC-KR <-> UTF-8)
gcc 버전에 따라 glibc에 포함된 경우는 -lc를 하고 그렇지 않은 경우는 -liconv를 링크한다.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <iconv.h>
#include <errno.h>


int main()
{
    int ret;
    iconv_t it;
    char ksc_buf[1024] = "한글과 유니코드";
    
    // KSC(완성형) 코드를 UTF(유니코드)로 변환하면 원래 크기보다 커지므로 크게~
    char utf_buf[1024] = {0x00, };
    size_t in_size, out_size;

    sprintf(ksc_buf, "%s", "한글과 유니코드");
    memset(utf_buf, '\0', 1024);

    // 어떤 시스템에서는 char** 가 아니라 const char** 인 경우도 있음
    char *input_buf_ptr = ksc_buf;
    char *output_buf_ptr = utf_buf;

    in_size = strlen(ksc_buf);
    out_size = sizeof(utf_buf);

    it = iconv_open("UTF-8", "EUC-KR"); // EUC-KR을 UTF-8로
    ret = iconv(it, &input_buf_ptr, &in_size, &output_buf_ptr, &out_size);
    
    if (ret < 0)
    {
        printf("ret : %d, errno : %d\n", ret, errno);
        return(-1);
    }
    else
    {
        printf("[%s](%d) => [%s][(%d)\n",
            ksc_buf, in_size, utf_buf, out_size);
    }
    
    iconv_close(it);

    input_buf_ptr = utf_buf;
    output_buf_ptr = ksc_buf;

    in_size = strlen(utf_buf);
    out_size = sizeof(ksc_buf);

    it = iconv_open("EUC-KR", "UTF-8"); // UTF-8을 EUC-KR로
    ret = iconv(it, &input_buf_ptr, &in_size, &output_buf_ptr, &out_size);

    if (ret < 0)
    {
        printf("ret : %d, errno : %d\n", ret, errno);
        return(-1);
    }
    else
    {
        printf("[%s](%d) => [%s][(%d)\n",
            utf_buf, in_size, ksc_buf, out_size);
    }
    
    iconv_close(it);
}


?

List of Articles
No. Category Subject Author Date Views
1005 Develop [ios] How to set up clang formatter hooni 2015.09.17 1474
1004 Etc ISMS 인증기준 – 정보보호대책 (시스템개발보안) file hooni 2016.12.01 1487
1003 System/OS Configure Postfix to Use Gmail SMTP on Ubuntu 18.04 file hooni 2020.02.07 1496
1002 Etc 모바일 프로그래머가 갖추어야 할 필수 역량 file hooni 2017.02.16 1498
1001 Develop [ios] Swift 4 String, Date, DateFormatter 예제 hooni 2018.10.18 1513
1000 System/OS RPA란? 어디에 어떻게 쓰이고 누가 만드나? file hooni 2020.01.28 1519
999 Etc 아이폰의 터치스크린 정확도 file hooni 2015.04.01 1521
998 System/OS How to Install and Use wget on Mac file hooni 2020.09.03 1540
997 System/OS SSH Passwordless Login Using SSH Keygen in 5 Easy Steps file hooni 2019.11.22 1541
996 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1571
995 Develop How to Test SMTP AUTH using Telnet hooni 2018.04.05 1590
994 Develop [swift] popToRoot 모달뷰, 네비게이션컨트롤러 한꺼번에 닫기 file hooni 2021.01.29 1599
Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 ... 98 Next
/ 98