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
44 UML - 기본편 ( 기본 표기 형식 및 관계 표현법 ) digipine 2017.10.28 879
43 Visual Studio 단축키 정리 digipine 2024.03.28 22
42 VSCode 에서 한글 특수문자 부분 만 검색하기 file digipine 2021.10.25 675
41 What is Android Repo? and Manual, Download file digipine 2017.11.02 99671
40 Wi-Fi display (miracast) FFMpeg MpegTs Supported digipine 2017.11.02 1302
39 Wi-Fi Display Standard Miracast Protocol Log digipine 2017.11.02 850
38 WIN CE C++ 시리얼 제어 방법 digipine 2017.10.28 631
37 WIN CE, GPS - NMEA protocol - GPS Virtual Driver digipine 2017.10.28 2830
36 Windows API - 안전한 문자열 함수들 digipine 2017.10.28 354
35 Windows에서 SVN 용 폴더 한 번에 삭제하기 digipine 2017.10.29 463
34 WinPCap과 Ethereal, Wireshark 을 이용한 스니핑(Sniffing) digipine 2017.10.29 5428
33 WPA_SUPPLICANT 빌드 방법 digipine 2017.11.01 338
32 WPA_SUPPLICANT 빌드 방법 digipine 2017.11.01 544
31 XCode 사용시 git ignore 로 xcuserstate 충돌 해결하기, .gitignore에 등록했는데도 동작안할때 해결방법 lizard2019 2022.09.25 441
30 xcode xib encountered an error communicating with ibagent-ios 해결 digipine 2022.10.06 384
29 Xcode 없이 맥에 '명령어 라인 도구(Command Line Tools)'를 설치하는 방법 엉뚱도마뱀 2018.12.26 2859
28 XOR Encryption : 단순하면서도 강력한 암호/복호화 기법 digipine 2017.11.02 1737
27 [iOS] Bluetooth로 App을 백그라운드 모드로 실행는 방법 lizard2019 2020.02.11 3525
26 [Linux, OSX] pfctl - Packet FIlter Control 사용법 digipine 2017.11.02 3189
25 [Linux] ubuntu 16.04에 QT Creator 설치하기 digipine 2017.11.02 24346
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6