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 TCP/IP State Transition - TCP 스택 포팅 시 참조 file digipine 2017.11.02 195821
104 언어 IDE 별로 git ignore 파일을 자동으로 만들어 주는 사이트 엉뚱도마뱀 2018.12.17 123378
103 What is Android Repo? and Manual, Download file digipine 2017.11.02 99947
102 [Linux] ubuntu 16.04에 QT Creator 설치하기 digipine 2017.11.02 24577
101 [Swift, MacOS] 맥 한글 파일명이 윈도우에서 자소 분리되는 현상 해결, NFD, NFC 엉뚱도마뱀 2018.12.11 20271
100 Linux init.d 에서 등록하기. 부팅 시 자동실행 설정 digipine 2017.11.03 12902
99 FFT (Fast Fourier Transform) 고속 푸리에 변환 예제 소스 digipine 2017.10.29 12662
98 Photoshop CC 2018 한글 영문 변환 언어팩, 포토샵 언어변경 file 엉뚱도마뱀 2018.07.04 8677
97 Phabricator 설치 가이드 우분투 16.04 기준 digipine 2017.11.02 6408
96 ATmega8 MCU 간의 TWI 기능을 이용한 I2C 통신 digipine 2017.11.02 6214
95 WinPCap과 Ethereal, Wireshark 을 이용한 스니핑(Sniffing) digipine 2017.10.29 5575
94 난수발생기 개론 엉뚱도마뱀 2017.11.22 4489
93 공짜 무료 C/C++ 컴파일러들 file digipine 2017.10.28 4481
92 비밀번호 해쉬에 Salt(소금) 첨가하기 file 엉뚱도마뱀 2017.11.23 4438
91 [iOS] Bluetooth로 App을 백그라운드 모드로 실행는 방법 lizard2019 2020.02.11 3664
90 OpenAL 사용법 정리 1 digipine 2017.11.01 3508
89 [Linux, OSX] pfctl - Packet FIlter Control 사용법 digipine 2017.11.02 3416
88 Xcode 없이 맥에 '명령어 라인 도구(Command Line Tools)'를 설치하는 방법 엉뚱도마뱀 2018.12.26 3074
87 WIN CE, GPS - NMEA protocol - GPS Virtual Driver digipine 2017.10.28 3031
86 초고속망 통신사 DNS 서버 주소 모음 - DNS 설정 digipine 2017.11.03 2739
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6