iconv library를 이용해서 euckr to utf-8 변환 > 기타 재밌는것들

본문 바로가기
사이트 내 전체검색

기타 재밌는것들

Linux iconv library를 이용해서 euckr to utf-8 변환

페이지 정보

작성자 no_profile 최고관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 27,062회 작성일 07-05-09 23:43

본문

1. 소스
#include <stdio.h>
#include <iconv.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>

int main()
{
        iconv_t cd = iconv_open("UTF-8", "EUC-KR");
        if (cd == (iconv_t)(-1))
        {
                perror("iconv_open");
                return 0;
        }

        char inBuf[1024];
        int inBufSize = sizeof(inBuf);

        char outBuf[1024];
        int outBufSize = sizeof(outBuf);
        memset(outBuf, 0, outBufSize);

        int inFd = open("./hangul-euckr.txt", O_RDWR);
        if (inFd == -1)
        {
                perror("hangul-euckr.txt");
                return 0;
        }

        int outFd = open("./hangul-utf8.txt", O_WRONLY | O_CREAT);
        if (outFd == -1)
        {
                perror("hangul-utf8.txt");                return 0;
        }

        size_t readBytes = read(inFd, inBuf, sizeof(inBuf));
        inBuf[readBytes] = '\0';

        // convert
        size_t writeBytes = sizeof(outBuf);
        char* in = inBuf;
        char* out = outBuf;
        if (iconv(cd, &in, &readBytes, &out, &writeBytes) == -1)
        {
                printf("failed to iconv errno:%d EILSEQ:%d\n", errno, EILSEQ);
        }
        else
        {
                outBuf[writeBytes] = '\0';
                write(outFd, outBuf, writeBytes);
                close(outFd);
        }

        close(inFd);

        return 0;
}

2. 실행
$ cat hangul-euckr.txt
�ѱ�euckr
$ g++ -o test test.cpp
$ ./test
$ cat hangul-utf8.txt
한글euckr

3. 설명
테스트 할때 hangul-euckr.txt 파일을 만들어서 euc-kr로 작성된 한글등을 집어넣고(kate같은 editor를 이용하면 편하다(도구 -> encoding에서 변경))
실행하면 hangul-utf8.txt 파일이 생성되는데 이 파일내용이 utf-8로 변환된것이다.

4. 주의사항
이 소스코드는 긴 문자열은 처리가 안됩니다. 테스트를 위해서 내부 버퍼를 1024로 설정했습니다.

korone (www.korone.net)

댓글목록

등록된 댓글이 없습니다.

Total -155건 2 페이지
기타 재밌는것들 목록
번호 제목 글쓴이 조회 날짜
-185 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12620 03-14
-186 no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10007 01-12
-187 no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9732 01-10
-188 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9962 01-06
-189 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13128 01-03
-190 일반 no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14738 11-29
-191 일반 no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11101 11-16
-192 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9762 10-08
-193 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8750 09-21
-194 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9857 09-15
-195 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7793 08-02
-196 PHP no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12532 07-06
-197 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9992 06-24
-198 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12777 06-22
-199 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13045 06-22
-200 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13063 06-22
-201 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9644 06-22
-202 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10615 06-22
-203 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14507 06-22
-204 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11383 06-22
-205 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 17917 06-22
-206 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 20873 06-22
-207 일반 no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11188 06-14
-208 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11894 05-30
-209 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11516 05-30
-210 Linux no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11861 04-20
-211 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11927 03-30
-212 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10161 03-25
-213 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13203 03-25
-214 C++ no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12170 03-16
게시물 검색

  • 게시물이 없습니다.

회원로그인

설문조사

새로운 홈페이지에 대한 평가

접속자집계

오늘
76
어제
854
최대
3,878
전체
4,413,941

Copyright © korone.net. All rights reserved.