logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

Iconv 사용법 소스

by digipine posted Nov 01, 2017
?

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

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

#include "stdio.h"
#include "string.h"
#include "iconv.h"
#include "error.h"

int main()
{
	int err = 0;
	char buf[1024];

	int ret;
	iconv_t it;
	char ksc_buf[1024] = "한글과 유니코드";
	char utf_buf[1024] = {0x00, }; 
	size_t in_size, out_size;

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

	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)
	{
		err = errno;
		strerror_r(errno, buf, sizeof(buf) );
		printf("ret : %d, errno : %d(%s)\n", ret, errno,buf);
		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);
	/************************************************************************/
	return 0;
}
TAG •

List of Articles
No. Subject Author Date Views
105 프로세스 능력 성숙도 모델(CMMI)의 적용 digipine 2017.10.28 803
104 프로그래밍 언어 순위 2023년 file digipine 2023.10.30 260
103 포렌식을 활용한 정보보호 digipine 2017.11.02 520
102 초고속망 통신사 DNS 서버 주소 모음 - DNS 설정 digipine 2017.11.03 2740
101 임베디드SW 개발자센터 이용안내(성남시 분당구, 개발공간 무료제공) digipine 2017.11.02 689
100 이벤트 텍소노미(Event Taxonomy)란 무엇인가요? digipine 2023.08.11 362
99 유닉스/리눅스 명령어 레퍼런스 digipine 2017.11.03 847
98 윈도우즈 도스 커멘드(Command) 네트워크 관련 명령어 lizard2019 2019.02.07 1574
97 윈도우 한영 전환 쉬프트 스페이스로 변경 digipine 2017.11.03 519
96 우분투 Nabi 한글 입력기 Tray(트레이) 상단 메뉴바로 옮기기 digipine 2017.11.03 1773
95 우분투 18.04 MongoDB 설치 및 구성 lizard2019 2021.02.26 618
94 언어 IDE 별로 git ignore 파일을 자동으로 만들어 주는 사이트 엉뚱도마뱀 2018.12.17 123379
93 악성코드 종류 구분 digipine 2017.11.13 1062
92 수학적 구조물 모델링 만들기 소개 비디오 엉뚱도마뱀 2018.09.24 1171
91 소프트웨어 테스팅 전문가들을 위한 사이트 digipine 2017.11.02 718
90 비밀번호 해쉬에 Salt(소금) 첨가하기 file 엉뚱도마뱀 2017.11.23 4438
89 리눅스 커널의 Swap Memory에 대해서 digipine 2017.11.02 786
88 리눅스 /dev/random을 이용한 랜덤값 생성 엉뚱도마뱀 2017.11.22 1709
87 대칭키 암호화관련 개념 정리 digipine 2017.11.09 1753
86 난수발생기 개론 엉뚱도마뱀 2017.11.22 4490
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6