SlideShare a Scribd company logo
1 of 38
Unicode v 1.1 박일 http://AnDStudy.com http://parkpd.egloos.com
문자? 문자셋? 인코딩? 폰트? 문자는 대소문자 구별을 한다. 영어 문자는 52 개 Character Code : 문자를 표현하는 데이터값 A : 65, B : 66 in ASCII 문자셋(Character Set) : 하나의 언어권에서 사용하는 언어를 표현하기 위한 문자들의 집합 인코딩: 문자셋과Character Code 와의 mapping ASCII 도 인코딩 방법의 하나 폰트 : glyphs 집합 일본어 : MS_Gothic, MS_Minch 중국어 : SimSun, PSimsun폰트 glyphs(글리프) : 문자 표현 그림[도안] 표지, [건축]장식용 세로홈, [고고학] 그림 문자, 상형 문자 Times New Roman Bold A : A Arial Bold A : A
ASCII 26x2(알파벳 대소문자) + 10(숫자) + 특수문자 + 통제문자 ->128개 이하(2^7) 옛날 워드스타에서는 나머지 1 bit 를 제어용으로 사용
서유럽으로 간 ASCII 움라우트 등을 표현하기 위해 7bit 에 1bit 추가 (2^8) ASCII 확장 문자셋을ISO 가 관리하게 됨 ISO/IEC 8859-1 	라틴-1 서유럽 ISO/IEC 8859-2 	라틴-2 중앙유럽 부터... ISO/IEC 8859-16 라틴-10 남동유럽 까지
일본으로 간 문자셋 1바이트로 일본어를 표현하기 글자가 둥글어 그리기 어려운 히라가나(あいうえお) 대신 카타가나(アイウエオ) 를 나머지 128 비트 공간에 넣자 영어와 크기를 같게 하기 위해 "반각(半角)문자, Half-Width Katakana“ 사용 MBCS - Multi Byte Character Set 등장 최상위 비트가 0 이면 ASCII Code 로 해석 1 이면 2 바이트를 사용하는 일본어 문자셋을 찾는다 예 : 0xA1 0x72 0xA3 0x70 0x52 0xA2 0xA3 1 바이트가 0x00 ~ 0x7F (0~127)까지의 값이라면 ASCII 문자이다. 서유럽어는0x80 ~ 0xA0 (예약범위)까지 (128 ~ 160) 공간을 동아시아 MBCS 를 위해서 비워놓았다.
한국 문자셋- 완성형과 조합형 완성형 : 완성형한글 2350자, 한자(4884개), 숫자,… “강“ : 0xB0C1 (0xB000 + 0xC0 + 0x1) 조합형 : 초성"ㄱ"과 중성"ㅏ"를 조립한 “가” 는 0x1100,0x1161 로 나타낼 수도 있다. 초성 ‘ㄱ’: 0x1100 HANGUL CHOSEONG KIYEOK 중성 ‘ㅏ’:0x1161 HANGUL JUNGSEON A 확장 1bit, 초성5bit, 중성 5bit, 종성 5bit
EUC Extened Unix Code(확장 유닉스 코드) 8비트 문자 인코딩 방식 ISO 2022 표준 기반 EUC-KR 은 KS X 1001, KS X 1003 사용 한글 완성형 인코딩 KS X 1003 는 역슬래쉬 대신 사용하는 것만 제외하면 ASCII 코드와 동일 KS X 1001 은 한글, 그림 문자, 한자 등을 포함 128보다 작은 바이트에 KS X 1003 배당 128보다 크거나 같은 바이트에 KS X 1001 배당 실제 사용공간이 상위바이트 161-254, 하위바이트 161-254 뿐이었기 때문에 ‘똠’이나 ‘뷁’ 같은 한글이 빠짐.
CP949 MS 가 KS X 1001 에 없는 한글 8822 자를 추가해 EUCKR 를 확장한 완성형 인코딩 ks_c_5601-1987 원래는 CodePage번호였으나 지금은 EUCKR 의 확장형인 한글 인코딩 방식을 지칭하는 이름이 되었다 ks_c_5601-92 도 있는 듯
iso2022-kr 과 KPS-9566 iso2022-kr EucKR을 7bit 만 사용하며 표현하는 방식으로 RFC1557 에 정의 KPS-9566 : 북한 유일의 고유 문자셋 한글 모양은 우리보다 300글자 정도 많고 한자는 200글자 정도 적다 한글 시작이 ‘가’ 가 아닌 ‘김일성김정일’ 6 글자가 먼저 배치되어 있다고... 자음 정렬 순서 ㄱㄴㄷㄹㅁㅂㅅㅈㅊㅋㅌㅍㅎㄲㄸㅃㅆㅉㅇ
Code Page 정의 : OS 에서 선택한 character code 들을 특정한 순서로 정리해 놓은 목록(IBM, MS) another name for character encoding(from wikipedia) 활성 코드 페이지 : 949 (완성형 확장) 한글 조합형 : Code Page 1361 영어 : ANSI-437 이스라엘 : ANSI-862 로케일 utf-8 : 65001 인코딩된 데이터를 어떻게 해석할 것인가  CHCP (change code page) Code Page Identifiers http://msdn.microsoft.com/en-us/library/dd317756
문제점 다른 CodePage에서 파일을 열면 글자가 깨져 보임 여러 나라의 문자셋을 같이 보여줄 수 없음 소프트웨어를 바이너리 하나로 여러 나라에 판매할 수 없음 DOS 시절 일본 게임 때문에 인코딩 바꿨다면 나중에 인코딩을 돌려놔야 했다 모든 문자별로 유일한 값을 할당하고 싶다
Unicode 시작 모든 문자별로 유일한 Character Code 를 지정하자 1984년 ISO(국제표준기구)는 ISO 10646 국제 표준 체결 -> 모든 문자를 4 바이트로 1993년 5월그리스 아테네 회의 : 최종 확정 Unicode Working Group(1989년) Apple, Xerox, Sun, Microsoft, NeXT : 2 바이트 Unicode 컨소시엄의 제안 일부를 ISO 에서 수용 ISO 10646-1 Universal(Multiple-Octet Coded) Character Set: UCS 덕분에 Unicode 가 UCS 의 서브셋이 되었음 가장 최신 버전 표준 Unicode 5.2 ISO/IEC 10646:2003 plus Amendments 1,2,3,4,5,6
Unicode 구조 문자별로 번호(코드 포인트 Code Point) 지정 U+0041 U+ 는 Unicode 0041 : 코드 포인트 값으로 16 진수로 표기 U+0041 는 영어 알파벳 'A’ U+AC00 : 한글 '가‘ U+0000~U+00FF 영역은 ISO 8859-1 문자셋과 동일 한글은 U+AC00 ~ U+D7AF 영역에 정의 0x10FFFF^2 : 100만개 글자(10만개 사용)
Unicode 체계 BMP (Basic multilingual Plane. 기본언어판) 최초 65536(2^16) 개의 문자 할당되는 영역. Unicode 3.0 : 49,194 문자 정의 UCS-2 과 동일 특히 한문에서 필요문자가 늘어나면서 보충언어판(Supplementary Plaines)을 정의 Unicode 3.1 에서는 BMP 에 2개 문자 추가, 보충언어판에44,944 개 문자 추가 음표,고대문자,한자(CJK Ideographic Extension B) 	CJK : 한국, 중국, 일본 Unicode 3.1: 49,194 + 44,944 = 94,140
UCS 체계 Cell : 한 개의 문자가 할당되는 공간 Plane : 256 * 256개의 cell 묶음  65536(0xFFFF) 개 -> UCS-2 BMP : Plain 00 Group : 256 개의 Plane 묶음(7F 개)
Unicode 표현 'A’ : U+0041 Group 00, Plane 00, Cell 41 '가’ : U+AC00 Group 00, Plane 00, Cell AC00 ♪ : U+1D160 Group 00, Plane 01, Cell D160 즉, Plain 번호 5비트, Cell 번호 16비트 21비트 공간 사용
Unicode 인코딩 UTF-32 UTF-16 UTF-8 UTF-7 email 용 UCS-2 UCS-4 UTF-32, UTF-16, UTF-8 모두 모든 Unicode 를 표현할 수 있으므로 서로 무손실 변환 가능 UCS-2 는 16 bit 이상 표현할 수 없기 때문에 unicode중에서 BMP 영역만 표현 가능
UTF-32 모든 문자를 코드 포인트 값 유지하면서 32 비트로 만든다. (고정길이) linux의 경우 wchar_t의 크기가 32bit 라서 mbstowcs()를 이용해서 변환 후 고정길이 인코딩처럼wcs함수를 사용하면 된다. UCS-4 의 부분집합(17 개의 언어판만 정의)
UTF-16 BMP 영역 안(U+0000-U+FFFF)의 문자는 그대로 표현, 밖의 문자는 변환 필요 (가변길이) Windows2000 과 이후 버전은 UTF-16 기반. 이전 NT 커널은UCS-2 기반 Java 2/Java 5는 UCS2/UTF-16에 의존 UCS-2 보다 확장된 개념
UTF-16 변환 규칙 Surrogate Pair (U+D800~U+DFFF) 에는 문자 할당되어 있지 않음
UTF-8 'A’ : U+0041같은 UTF-16 를 char 로 읽으면 00 (null) 문자열 때문에 기존 함수가 오작동 <html><head> <meta http-equiv=“Content-Type” content=“text/html;charset=utf-8”> Charset까지는 ascii로 읽고 charset읽은 후에 인코딩에 맞춰서 파싱 시작. 그러니 charset이전에 unicode인코딩 글자가 들어가면 안 됨 웹의 실질적 표준, 많은 *nix 시스템, xml, python 은 UTF-8 을 가장 기초적인 인코딩으로 사용 글자 길이를 알려면 전체 글을 파싱해야 함
Unicode 한글에서 받침 알기 유니코드 2.0 : 한글은 초성 19개, 중성 21개, 종성 28개(없음도 포함)가 있다. 초성 19개를 0...18까지 번호를 붙이고 중성도 0...20, 종성도 역시 0...27까지 번호를 붙인다면, 원하는 코드는 0xAC00 + x*21*28 + y*28 + z (x=초성번호, y=중성번호, z=종성번호)로 만들 수 있다. 종성에서 0 번째에 해당하는 것은 '없음'이므로 유니코드값에서 0xAC00을 뺀 후에 28로 나누어 떨어지는지 확인하면 됩니다. http://jof4002.net/Unicode wchar_t* pString = L"가각나듯"; cout << (pString[0] - 0xAC00) % 28 << endl;  // 0 cout << (pString[1] - 0xAC00) % 28 << endl;  // 1 cout << (pString[2] - 0xAC00) % 28 << endl;  // 0 cout << (pString[3] - 0xAC00) % 28 << endl;  // 19
Unicode 변환 USES_CONVERSION; pI->SomeFunctionNeedsUnicode(T2OLE(lpszA)); 매크로 인자결과 A2CW 	(LPCSTR) 		(LPCWSTR) A2W 		(LPCSTR) 		(LPWSTR) W2CA 	(LPCWSTR) 	(LPCSTR) W2A 		(LPCWSTR) 	(LPSTR) T2COLE 	(LPCTSTR) 		(LPCOLESTR) T2OLE 	(LPCTSTR) 		(LPOLESTR) OLE2CT 	(LPCOLESTR) 	(LPCTSTR) OLE2T 	(LPCOLESTR) 	(LPCSTR)
Unicode in VC++ std::locale::global(std::locale("" )); wcin.imbue(locale("korean")); 와 wcout.imbue(locale("korean")); wcout.fail() 로확인하고, wcout.clear(); _setmode(_fileno(stdout), _O_U16TEXT);
UTF-16 문자 개수 구하기 code snippet http://dodoubt.tistory.com/40참고
BOM(Byte Order Mark) 파일이 어떤 식으로 인코딩되어 있는지 알려주는 헤더 역할 UTF-32, big-endian : 00 00 FE FF UTF-32, little-endian : FF FE 00 00 UTF-16, big-endian : FE FF UTF-16, little-endian : FF FE UTF-8 : EF BB BF UTF-8 에서는 BOM 사용을 별로 권장하지 않음. UTF-8 이 기본 언어는 ASCII 와 호환된다는 장점이 있는데, BOM 처리를 하지 않는 editor 나 웹페이지에서는 BOM 을 i≫¿ 로 출력할 수 있다.
Font 문자 -> 유니코드 -> 유니코드 인코딩-> 화면 그리기 유니코드 폰트 Arial Unicode MS(ARIALUNI.TTF, 22,730KB) 함초롱체, 한컴 바탕 : http://maplestory.pe.kr/1785 고정길이 폰트(Monospace Font) 굴림체, 바탕체, 돋움체 가변길이 폰트 굴림, 바탕, 돋움 상관없지만  나눔고딕 코딩글꼴 http://dev.naver.com/projects/nanumfont/download Bitstream Vera Sans Mono + 맑은고딕 http://ggotbo.egloos.com/2334938
Console 에서의 폰트 [HKEY_CURRENT_USERonsoleSystemRoot%_system32_cmd.exe] "CodePage"=dword:000001b5 "FontSize"=dword:000c0000 "FontFamily"=dword:00000036 "FontWeight"=dword:00000190 "FaceName"=" 굴림체“ 명령 창에서 사용할 수 있도록 글꼴에 대해 필요한 조건 	fixed-pitch font, not italic font,no negative A or C space 	if (TrueType) FF_MODERN else OEM_CHARSET http://support.microsoft.com/kb/Q247815 명령 프롬프트 디폴트 폰트 바꾸는 법 http://pcwinvista.tistory.com/340 http://dodoubt.tistory.com/34
charmap
이데아 문자-> 유니코드-> 유니코드 인코딩-> 폰트
인코딩 SBCS(Single Byte Character Set) ASCII MBCS(Multi Byte Character Set) UTF-16, UTF-8 문자열 길이를 바로 알 수 없다. WBCS(Wide Byte Character Set) UTF-32, UCS-2, UCS-4 문자셋과인코딩이 동일 SBCD, MBCS, WBCS 는 인코딩 방법이지 인코딩이 아님
Reference Unicode 의 이해 – novo networks http://www.novonetworks.com/jamestic/Unicode_1.0.pdf 진숙의 유니코드 입문서 http://www.kristalinfo.com/K-Lab/unicode/Unicode_intro-kr.html MBCS 와 유니코드 	http://www.animalpicturesarchive.com/jinsuk-kim/diary/read.php?2006/0203 위키백과– 유니코드, 유니코드 범위 목록 Unicode 5.2 Character Code Charts http://www.unicode.org/charts/ 조엘 온 소프트웨어 : 유니코드와 문자집합에 대한 고찰 http://www.joelonsoftware.com/articles/Unicode.html Character sets and codepages http://www.microsoft.com/typography/unicode/cscp.htm http://www.microsoft.com/typography/unicode/1250.gif 한글 코드페이지 http://www.unicode.org/charts/PDF/UAC00.pdf KS C 5601 완성형 코드 http://zbxe.bluegate.kr/42 http://whatisthat.co.kr/6
Reference http://jof4002.net/Unicode VC++ : 유니코드를 표준 출력에 내보내기 http://kaistizen.net/EE/index.php/weblog/comments/unicode_hangul_to_stdout/ IdeAthinKING - C file’s orientation http://ideathinking.com/blog/?p=108 http://ideathinking.com/blog/?p=109 rein : 인코딩과 문자집합: Unicode http://rein.kr/blog/archives/280 rein : Windows Character Encoding: UCS2? UTF-16? http://rein.kr/blog/archives/585 STL string 사용시 wstring일때, 출력이 되지 않습니다.  http://kldp.org/node/93573 http://en.wikipedia.org/wiki/Code_page http://gpgstudy.com/gpgiki/윈도우 다국어 프로그래밍 MBCS 와 UNICODE FAQ 정리 http://mynotepad.tistory.com/67
Reference Unicode - (1) 개념 http://dodoubt.tistory.com/29 Standard output으로 unicode문자를 출력하기 (Win32 console application) http://dodoubt.tistory.com/35 Unicode - (2) UTF-16(wide character) in Windows http://dodoubt.tistory.com/36 Unicode - (3) UTF-8 in Windows http://dodoubt.tistory.com/38 Unicode - (4) 문자 개수 구하기, 변환(convert) code snippet http://dodoubt.tistory.com/40 window command prompt(cmd.exe)에서 사용하는 font 추가 및 변경하기 http://dodoubt.tistory.com/34 ASCII and Unicode quotation marks by Markus Kuhn  http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html 유니 코드 (구원의 여신의 등장?) - 박우영 http://web.edunet4u.net/~han0416/%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%20%EA%B0%95%EC%A2%8C/chapter2/uni_code.htm Code2001, a Plane 1 Unicode-based Font http://www.code2000.net/code2001.htm wprintf/wcout and unicode characters in VS2005 http://blog.kalmbachnet.de/?postid=98
Reference David Myriad Rosenbaum's Font Sanctuary (Ugaritic Font) http://davidmyriad.tripod.com/myriads.font.page.html http://www.alanwood.net/unicode/fonts-middle-eastern.html#ugaritic 외국어 지원을 위한 Unicode 활용 방법 http://www.ibm.com/developerworks/kr/library/l-linuni.html ASCII Table http://www.asciitable.com/ 심심할때 읽어보는 문자셋, 인코딩 이야기 http://blog.daum.net/_blog/tagArticleList.do?blogid=0Idq4&tagName=%EB%AC%B8%EC%9E%90%EC%85%8B#ajax_history_home 한글 인코딩 이야기 - (1) ASCII, 완성형, 조합형, EUCKR, CP949 http://heyjimin.tistory.com/14 한글 인코딩 이야기 - (2) 유니코드, UCS-2, UTF-8, UTF-16 http://heyjimin.tistory.com/15 http://namoda.springnote.com/pages/2017552 유니코드 볼 수 있는 에디터? KORAIS http://korais.sourceforge.net/screenshots.html

More Related Content

What's hot

Internet Message Protocol (rfc822, rfc 2822)
Internet Message Protocol (rfc822, rfc 2822)Internet Message Protocol (rfc822, rfc 2822)
Internet Message Protocol (rfc822, rfc 2822)Jua Alice Kim
 
문자 인코딩과 유니코드
문자 인코딩과 유니코드문자 인코딩과 유니코드
문자 인코딩과 유니코드Yongsu Park
 
Character Encoding in python
Character Encoding in pythonCharacter Encoding in python
Character Encoding in pythondaesung7kang
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summaryHoChul Shin
 
파이썬 2와 유니코드
파이썬 2와 유니코드파이썬 2와 유니코드
파이썬 2와 유니코드성주 이
 
정규표현식(Regular expressions)
정규표현식(Regular expressions)정규표현식(Regular expressions)
정규표현식(Regular expressions)Juhee Kim
 
Go character encoding
Go character encodingGo character encoding
Go character encodingHomin Lee
 
Python3 10장 문자열이야기
Python3 10장 문자열이야기Python3 10장 문자열이야기
Python3 10장 문자열이야기Jihoon Kong
 
정규표현식 Regular expression (regex)
정규표현식 Regular expression (regex)정규표현식 Regular expression (regex)
정규표현식 Regular expression (regex)Sunyoung Kim
 
[TAOCP] 1.3.1 MIX 설명
[TAOCP] 1.3.1 MIX 설명[TAOCP] 1.3.1 MIX 설명
[TAOCP] 1.3.1 MIX 설명종빈 오
 
Windows reversing study_basic_4
Windows reversing study_basic_4Windows reversing study_basic_4
Windows reversing study_basic_4Jinkyoung Kim
 

What's hot (12)

문자열 이상재
문자열 이상재문자열 이상재
문자열 이상재
 
Internet Message Protocol (rfc822, rfc 2822)
Internet Message Protocol (rfc822, rfc 2822)Internet Message Protocol (rfc822, rfc 2822)
Internet Message Protocol (rfc822, rfc 2822)
 
문자 인코딩과 유니코드
문자 인코딩과 유니코드문자 인코딩과 유니코드
문자 인코딩과 유니코드
 
Character Encoding in python
Character Encoding in pythonCharacter Encoding in python
Character Encoding in python
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summary
 
파이썬 2와 유니코드
파이썬 2와 유니코드파이썬 2와 유니코드
파이썬 2와 유니코드
 
정규표현식(Regular expressions)
정규표현식(Regular expressions)정규표현식(Regular expressions)
정규표현식(Regular expressions)
 
Go character encoding
Go character encodingGo character encoding
Go character encoding
 
Python3 10장 문자열이야기
Python3 10장 문자열이야기Python3 10장 문자열이야기
Python3 10장 문자열이야기
 
정규표현식 Regular expression (regex)
정규표현식 Regular expression (regex)정규표현식 Regular expression (regex)
정규표현식 Regular expression (regex)
 
[TAOCP] 1.3.1 MIX 설명
[TAOCP] 1.3.1 MIX 설명[TAOCP] 1.3.1 MIX 설명
[TAOCP] 1.3.1 MIX 설명
 
Windows reversing study_basic_4
Windows reversing study_basic_4Windows reversing study_basic_4
Windows reversing study_basic_4
 

Viewers also liked

카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.Ryan Park
 
AIbyExample - Ch7 raven. version 0.8
AIbyExample - Ch7 raven. version 0.8AIbyExample - Ch7 raven. version 0.8
AIbyExample - Ch7 raven. version 0.8Ryan Park
 
즉흥연기와프로그래밍
즉흥연기와프로그래밍즉흥연기와프로그래밍
즉흥연기와프로그래밍Ryan Park
 
Programming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. RavenProgramming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. RavenRyan Park
 
나도기술서번역한번해볼까 in NDC10
나도기술서번역한번해볼까 in NDC10나도기술서번역한번해볼까 in NDC10
나도기술서번역한번해볼까 in NDC10Ryan Park
 
온라인 게임에서 사례로 살펴보는 디버깅
온라인 게임에서 사례로 살펴보는 디버깅온라인 게임에서 사례로 살펴보는 디버깅
온라인 게임에서 사례로 살펴보는 디버깅Ryan Park
 
나도(기술서)번역한번해볼까
나도(기술서)번역한번해볼까나도(기술서)번역한번해볼까
나도(기술서)번역한번해볼까Ryan Park
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010Ryan Park
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10Ryan Park
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점Ryan Park
 
Domain Driven Design Ch7
Domain Driven Design Ch7Domain Driven Design Ch7
Domain Driven Design Ch7Ryan Park
 
Oop design principle SOLID
Oop design principle SOLIDOop design principle SOLID
Oop design principle SOLIDRyan Park
 
Oop design principle
Oop design principleOop design principle
Oop design principleRyan Park
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기Changwan Jun
 
KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기Ryan Park
 

Viewers also liked (16)

Taocp1 2 4
Taocp1 2 4Taocp1 2 4
Taocp1 2 4
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.
 
AIbyExample - Ch7 raven. version 0.8
AIbyExample - Ch7 raven. version 0.8AIbyExample - Ch7 raven. version 0.8
AIbyExample - Ch7 raven. version 0.8
 
즉흥연기와프로그래밍
즉흥연기와프로그래밍즉흥연기와프로그래밍
즉흥연기와프로그래밍
 
Programming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. RavenProgramming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. Raven
 
나도기술서번역한번해볼까 in NDC10
나도기술서번역한번해볼까 in NDC10나도기술서번역한번해볼까 in NDC10
나도기술서번역한번해볼까 in NDC10
 
온라인 게임에서 사례로 살펴보는 디버깅
온라인 게임에서 사례로 살펴보는 디버깅온라인 게임에서 사례로 살펴보는 디버깅
온라인 게임에서 사례로 살펴보는 디버깅
 
나도(기술서)번역한번해볼까
나도(기술서)번역한번해볼까나도(기술서)번역한번해볼까
나도(기술서)번역한번해볼까
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 
Domain Driven Design Ch7
Domain Driven Design Ch7Domain Driven Design Ch7
Domain Driven Design Ch7
 
Oop design principle SOLID
Oop design principle SOLIDOop design principle SOLID
Oop design principle SOLID
 
Oop design principle
Oop design principleOop design principle
Oop design principle
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
 
KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기
 

Similar to Unicode 이해하기

전영규 유니코드 세미나_공개용
전영규 유니코드 세미나_공개용전영규 유니코드 세미나_공개용
전영규 유니코드 세미나_공개용YOUNGGYU CHUN
 
Unicode & encoding
Unicode & encodingUnicode & encoding
Unicode & encodingJaeSang Yoo
 
3조(Team P.P.K.L) 문자코드
3조(Team P.P.K.L) 문자코드3조(Team P.P.K.L) 문자코드
3조(Team P.P.K.L) 문자코드ciel2230
 
인코딩 발표
인코딩 발표인코딩 발표
인코딩 발표MinJeong Kim
 
문자열이란 무엇인가
문자열이란 무엇인가문자열이란 무엇인가
문자열이란 무엇인가Seungyong Lee
 
Windosw via c 스터디2장
Windosw via c 스터디2장Windosw via c 스터디2장
Windosw via c 스터디2장HolyTak
 
델파이와 유니코드
델파이와 유니코드델파이와 유니코드
델파이와 유니코드Devgear
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1YEONG-CHEON YOU
 
Assembly 스터디 2
Assembly 스터디 2Assembly 스터디 2
Assembly 스터디 2Jinkyoung Kim
 
글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0KangJin Choi
 
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)유익아카데미
 
Project#7 Group Codes Hwp
Project#7 Group Codes HwpProject#7 Group Codes Hwp
Project#7 Group Codes HwpKimjeongmoo
 

Similar to Unicode 이해하기 (17)

전영규 유니코드 세미나_공개용
전영규 유니코드 세미나_공개용전영규 유니코드 세미나_공개용
전영규 유니코드 세미나_공개용
 
문자코드
문자코드문자코드
문자코드
 
Unicode & encoding
Unicode & encodingUnicode & encoding
Unicode & encoding
 
3조(Team P.P.K.L) 문자코드
3조(Team P.P.K.L) 문자코드3조(Team P.P.K.L) 문자코드
3조(Team P.P.K.L) 문자코드
 
인코딩 발표
인코딩 발표인코딩 발표
인코딩 발표
 
문자열이란 무엇인가
문자열이란 무엇인가문자열이란 무엇인가
문자열이란 무엇인가
 
Windosw via c 스터디2장
Windosw via c 스터디2장Windosw via c 스터디2장
Windosw via c 스터디2장
 
델파이와 유니코드
델파이와 유니코드델파이와 유니코드
델파이와 유니코드
 
부팅
부팅부팅
부팅
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1
 
Assembly 스터디 2
Assembly 스터디 2Assembly 스터디 2
Assembly 스터디 2
 
코드 Ch20
코드 Ch20코드 Ch20
코드 Ch20
 
글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0
 
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(3)
 
7그룹 코드
7그룹 코드7그룹 코드
7그룹 코드
 
Project#7 Group Codes Hwp
Project#7 Group Codes HwpProject#7 Group Codes Hwp
Project#7 Group Codes Hwp
 

More from Ryan Park

OOP 설계 원칙 S.O.L.I.D.
OOP 설계 원칙 S.O.L.I.D.OOP 설계 원칙 S.O.L.I.D.
OOP 설계 원칙 S.O.L.I.D.Ryan Park
 
프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장Ryan Park
 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Ryan Park
 
UnitTest, Tdd For Games Kgc2007 ParkPD
UnitTest, Tdd For Games Kgc2007 ParkPDUnitTest, Tdd For Games Kgc2007 ParkPD
UnitTest, Tdd For Games Kgc2007 ParkPDRyan Park
 
Agile Test Driven Development For Games What, Why, And How
Agile Test Driven Development For Games What, Why, And HowAgile Test Driven Development For Games What, Why, And How
Agile Test Driven Development For Games What, Why, And HowRyan Park
 
Agd Test Driven Development For Games What, Why, And How)(Game Connect 2006...
Agd   Test Driven Development For Games What, Why, And How)(Game Connect 2006...Agd   Test Driven Development For Games What, Why, And How)(Game Connect 2006...
Agd Test Driven Development For Games What, Why, And How)(Game Connect 2006...Ryan Park
 

More from Ryan Park (6)

OOP 설계 원칙 S.O.L.I.D.
OOP 설계 원칙 S.O.L.I.D.OOP 설계 원칙 S.O.L.I.D.
OOP 설계 원칙 S.O.L.I.D.
 
프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장
 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
 
UnitTest, Tdd For Games Kgc2007 ParkPD
UnitTest, Tdd For Games Kgc2007 ParkPDUnitTest, Tdd For Games Kgc2007 ParkPD
UnitTest, Tdd For Games Kgc2007 ParkPD
 
Agile Test Driven Development For Games What, Why, And How
Agile Test Driven Development For Games What, Why, And HowAgile Test Driven Development For Games What, Why, And How
Agile Test Driven Development For Games What, Why, And How
 
Agd Test Driven Development For Games What, Why, And How)(Game Connect 2006...
Agd   Test Driven Development For Games What, Why, And How)(Game Connect 2006...Agd   Test Driven Development For Games What, Why, And How)(Game Connect 2006...
Agd Test Driven Development For Games What, Why, And How)(Game Connect 2006...
 

Unicode 이해하기

  • 1. Unicode v 1.1 박일 http://AnDStudy.com http://parkpd.egloos.com
  • 2.
  • 3. 문자? 문자셋? 인코딩? 폰트? 문자는 대소문자 구별을 한다. 영어 문자는 52 개 Character Code : 문자를 표현하는 데이터값 A : 65, B : 66 in ASCII 문자셋(Character Set) : 하나의 언어권에서 사용하는 언어를 표현하기 위한 문자들의 집합 인코딩: 문자셋과Character Code 와의 mapping ASCII 도 인코딩 방법의 하나 폰트 : glyphs 집합 일본어 : MS_Gothic, MS_Minch 중국어 : SimSun, PSimsun폰트 glyphs(글리프) : 문자 표현 그림[도안] 표지, [건축]장식용 세로홈, [고고학] 그림 문자, 상형 문자 Times New Roman Bold A : A Arial Bold A : A
  • 4. ASCII 26x2(알파벳 대소문자) + 10(숫자) + 특수문자 + 통제문자 ->128개 이하(2^7) 옛날 워드스타에서는 나머지 1 bit 를 제어용으로 사용
  • 5. 서유럽으로 간 ASCII 움라우트 등을 표현하기 위해 7bit 에 1bit 추가 (2^8) ASCII 확장 문자셋을ISO 가 관리하게 됨 ISO/IEC 8859-1 라틴-1 서유럽 ISO/IEC 8859-2 라틴-2 중앙유럽 부터... ISO/IEC 8859-16 라틴-10 남동유럽 까지
  • 6. 일본으로 간 문자셋 1바이트로 일본어를 표현하기 글자가 둥글어 그리기 어려운 히라가나(あいうえお) 대신 카타가나(アイウエオ) 를 나머지 128 비트 공간에 넣자 영어와 크기를 같게 하기 위해 "반각(半角)문자, Half-Width Katakana“ 사용 MBCS - Multi Byte Character Set 등장 최상위 비트가 0 이면 ASCII Code 로 해석 1 이면 2 바이트를 사용하는 일본어 문자셋을 찾는다 예 : 0xA1 0x72 0xA3 0x70 0x52 0xA2 0xA3 1 바이트가 0x00 ~ 0x7F (0~127)까지의 값이라면 ASCII 문자이다. 서유럽어는0x80 ~ 0xA0 (예약범위)까지 (128 ~ 160) 공간을 동아시아 MBCS 를 위해서 비워놓았다.
  • 7. 한국 문자셋- 완성형과 조합형 완성형 : 완성형한글 2350자, 한자(4884개), 숫자,… “강“ : 0xB0C1 (0xB000 + 0xC0 + 0x1) 조합형 : 초성"ㄱ"과 중성"ㅏ"를 조립한 “가” 는 0x1100,0x1161 로 나타낼 수도 있다. 초성 ‘ㄱ’: 0x1100 HANGUL CHOSEONG KIYEOK 중성 ‘ㅏ’:0x1161 HANGUL JUNGSEON A 확장 1bit, 초성5bit, 중성 5bit, 종성 5bit
  • 8. EUC Extened Unix Code(확장 유닉스 코드) 8비트 문자 인코딩 방식 ISO 2022 표준 기반 EUC-KR 은 KS X 1001, KS X 1003 사용 한글 완성형 인코딩 KS X 1003 는 역슬래쉬 대신 사용하는 것만 제외하면 ASCII 코드와 동일 KS X 1001 은 한글, 그림 문자, 한자 등을 포함 128보다 작은 바이트에 KS X 1003 배당 128보다 크거나 같은 바이트에 KS X 1001 배당 실제 사용공간이 상위바이트 161-254, 하위바이트 161-254 뿐이었기 때문에 ‘똠’이나 ‘뷁’ 같은 한글이 빠짐.
  • 9. CP949 MS 가 KS X 1001 에 없는 한글 8822 자를 추가해 EUCKR 를 확장한 완성형 인코딩 ks_c_5601-1987 원래는 CodePage번호였으나 지금은 EUCKR 의 확장형인 한글 인코딩 방식을 지칭하는 이름이 되었다 ks_c_5601-92 도 있는 듯
  • 10. iso2022-kr 과 KPS-9566 iso2022-kr EucKR을 7bit 만 사용하며 표현하는 방식으로 RFC1557 에 정의 KPS-9566 : 북한 유일의 고유 문자셋 한글 모양은 우리보다 300글자 정도 많고 한자는 200글자 정도 적다 한글 시작이 ‘가’ 가 아닌 ‘김일성김정일’ 6 글자가 먼저 배치되어 있다고... 자음 정렬 순서 ㄱㄴㄷㄹㅁㅂㅅㅈㅊㅋㅌㅍㅎㄲㄸㅃㅆㅉㅇ
  • 11. Code Page 정의 : OS 에서 선택한 character code 들을 특정한 순서로 정리해 놓은 목록(IBM, MS) another name for character encoding(from wikipedia) 활성 코드 페이지 : 949 (완성형 확장) 한글 조합형 : Code Page 1361 영어 : ANSI-437 이스라엘 : ANSI-862 로케일 utf-8 : 65001 인코딩된 데이터를 어떻게 해석할 것인가 CHCP (change code page) Code Page Identifiers http://msdn.microsoft.com/en-us/library/dd317756
  • 12. 문제점 다른 CodePage에서 파일을 열면 글자가 깨져 보임 여러 나라의 문자셋을 같이 보여줄 수 없음 소프트웨어를 바이너리 하나로 여러 나라에 판매할 수 없음 DOS 시절 일본 게임 때문에 인코딩 바꿨다면 나중에 인코딩을 돌려놔야 했다 모든 문자별로 유일한 값을 할당하고 싶다
  • 13. Unicode 시작 모든 문자별로 유일한 Character Code 를 지정하자 1984년 ISO(국제표준기구)는 ISO 10646 국제 표준 체결 -> 모든 문자를 4 바이트로 1993년 5월그리스 아테네 회의 : 최종 확정 Unicode Working Group(1989년) Apple, Xerox, Sun, Microsoft, NeXT : 2 바이트 Unicode 컨소시엄의 제안 일부를 ISO 에서 수용 ISO 10646-1 Universal(Multiple-Octet Coded) Character Set: UCS 덕분에 Unicode 가 UCS 의 서브셋이 되었음 가장 최신 버전 표준 Unicode 5.2 ISO/IEC 10646:2003 plus Amendments 1,2,3,4,5,6
  • 14. Unicode 구조 문자별로 번호(코드 포인트 Code Point) 지정 U+0041 U+ 는 Unicode 0041 : 코드 포인트 값으로 16 진수로 표기 U+0041 는 영어 알파벳 'A’ U+AC00 : 한글 '가‘ U+0000~U+00FF 영역은 ISO 8859-1 문자셋과 동일 한글은 U+AC00 ~ U+D7AF 영역에 정의 0x10FFFF^2 : 100만개 글자(10만개 사용)
  • 15.
  • 16. Unicode 체계 BMP (Basic multilingual Plane. 기본언어판) 최초 65536(2^16) 개의 문자 할당되는 영역. Unicode 3.0 : 49,194 문자 정의 UCS-2 과 동일 특히 한문에서 필요문자가 늘어나면서 보충언어판(Supplementary Plaines)을 정의 Unicode 3.1 에서는 BMP 에 2개 문자 추가, 보충언어판에44,944 개 문자 추가 음표,고대문자,한자(CJK Ideographic Extension B) CJK : 한국, 중국, 일본 Unicode 3.1: 49,194 + 44,944 = 94,140
  • 17. UCS 체계 Cell : 한 개의 문자가 할당되는 공간 Plane : 256 * 256개의 cell 묶음 65536(0xFFFF) 개 -> UCS-2 BMP : Plain 00 Group : 256 개의 Plane 묶음(7F 개)
  • 18. Unicode 표현 'A’ : U+0041 Group 00, Plane 00, Cell 41 '가’ : U+AC00 Group 00, Plane 00, Cell AC00 ♪ : U+1D160 Group 00, Plane 01, Cell D160 즉, Plain 번호 5비트, Cell 번호 16비트 21비트 공간 사용
  • 19. Unicode 인코딩 UTF-32 UTF-16 UTF-8 UTF-7 email 용 UCS-2 UCS-4 UTF-32, UTF-16, UTF-8 모두 모든 Unicode 를 표현할 수 있으므로 서로 무손실 변환 가능 UCS-2 는 16 bit 이상 표현할 수 없기 때문에 unicode중에서 BMP 영역만 표현 가능
  • 20. UTF-32 모든 문자를 코드 포인트 값 유지하면서 32 비트로 만든다. (고정길이) linux의 경우 wchar_t의 크기가 32bit 라서 mbstowcs()를 이용해서 변환 후 고정길이 인코딩처럼wcs함수를 사용하면 된다. UCS-4 의 부분집합(17 개의 언어판만 정의)
  • 21. UTF-16 BMP 영역 안(U+0000-U+FFFF)의 문자는 그대로 표현, 밖의 문자는 변환 필요 (가변길이) Windows2000 과 이후 버전은 UTF-16 기반. 이전 NT 커널은UCS-2 기반 Java 2/Java 5는 UCS2/UTF-16에 의존 UCS-2 보다 확장된 개념
  • 22. UTF-16 변환 규칙 Surrogate Pair (U+D800~U+DFFF) 에는 문자 할당되어 있지 않음
  • 23. UTF-8 'A’ : U+0041같은 UTF-16 를 char 로 읽으면 00 (null) 문자열 때문에 기존 함수가 오작동 <html><head> <meta http-equiv=“Content-Type” content=“text/html;charset=utf-8”> Charset까지는 ascii로 읽고 charset읽은 후에 인코딩에 맞춰서 파싱 시작. 그러니 charset이전에 unicode인코딩 글자가 들어가면 안 됨 웹의 실질적 표준, 많은 *nix 시스템, xml, python 은 UTF-8 을 가장 기초적인 인코딩으로 사용 글자 길이를 알려면 전체 글을 파싱해야 함
  • 24.
  • 25. Unicode 한글에서 받침 알기 유니코드 2.0 : 한글은 초성 19개, 중성 21개, 종성 28개(없음도 포함)가 있다. 초성 19개를 0...18까지 번호를 붙이고 중성도 0...20, 종성도 역시 0...27까지 번호를 붙인다면, 원하는 코드는 0xAC00 + x*21*28 + y*28 + z (x=초성번호, y=중성번호, z=종성번호)로 만들 수 있다. 종성에서 0 번째에 해당하는 것은 '없음'이므로 유니코드값에서 0xAC00을 뺀 후에 28로 나누어 떨어지는지 확인하면 됩니다. http://jof4002.net/Unicode wchar_t* pString = L"가각나듯"; cout << (pString[0] - 0xAC00) % 28 << endl; // 0 cout << (pString[1] - 0xAC00) % 28 << endl; // 1 cout << (pString[2] - 0xAC00) % 28 << endl; // 0 cout << (pString[3] - 0xAC00) % 28 << endl; // 19
  • 26. Unicode 변환 USES_CONVERSION; pI->SomeFunctionNeedsUnicode(T2OLE(lpszA)); 매크로 인자결과 A2CW (LPCSTR) (LPCWSTR) A2W (LPCSTR) (LPWSTR) W2CA (LPCWSTR) (LPCSTR) W2A (LPCWSTR) (LPSTR) T2COLE (LPCTSTR) (LPCOLESTR) T2OLE (LPCTSTR) (LPOLESTR) OLE2CT (LPCOLESTR) (LPCTSTR) OLE2T (LPCOLESTR) (LPCSTR)
  • 27. Unicode in VC++ std::locale::global(std::locale("" )); wcin.imbue(locale("korean")); 와 wcout.imbue(locale("korean")); wcout.fail() 로확인하고, wcout.clear(); _setmode(_fileno(stdout), _O_U16TEXT);
  • 28. UTF-16 문자 개수 구하기 code snippet http://dodoubt.tistory.com/40참고
  • 29. BOM(Byte Order Mark) 파일이 어떤 식으로 인코딩되어 있는지 알려주는 헤더 역할 UTF-32, big-endian : 00 00 FE FF UTF-32, little-endian : FF FE 00 00 UTF-16, big-endian : FE FF UTF-16, little-endian : FF FE UTF-8 : EF BB BF UTF-8 에서는 BOM 사용을 별로 권장하지 않음. UTF-8 이 기본 언어는 ASCII 와 호환된다는 장점이 있는데, BOM 처리를 하지 않는 editor 나 웹페이지에서는 BOM 을 i≫¿ 로 출력할 수 있다.
  • 30. Font 문자 -> 유니코드 -> 유니코드 인코딩-> 화면 그리기 유니코드 폰트 Arial Unicode MS(ARIALUNI.TTF, 22,730KB) 함초롱체, 한컴 바탕 : http://maplestory.pe.kr/1785 고정길이 폰트(Monospace Font) 굴림체, 바탕체, 돋움체 가변길이 폰트 굴림, 바탕, 돋움 상관없지만 나눔고딕 코딩글꼴 http://dev.naver.com/projects/nanumfont/download Bitstream Vera Sans Mono + 맑은고딕 http://ggotbo.egloos.com/2334938
  • 31. Console 에서의 폰트 [HKEY_CURRENT_USERonsoleSystemRoot%_system32_cmd.exe] "CodePage"=dword:000001b5 "FontSize"=dword:000c0000 "FontFamily"=dword:00000036 "FontWeight"=dword:00000190 "FaceName"=" 굴림체“ 명령 창에서 사용할 수 있도록 글꼴에 대해 필요한 조건 fixed-pitch font, not italic font,no negative A or C space if (TrueType) FF_MODERN else OEM_CHARSET http://support.microsoft.com/kb/Q247815 명령 프롬프트 디폴트 폰트 바꾸는 법 http://pcwinvista.tistory.com/340 http://dodoubt.tistory.com/34
  • 33. 이데아 문자-> 유니코드-> 유니코드 인코딩-> 폰트
  • 34. 인코딩 SBCS(Single Byte Character Set) ASCII MBCS(Multi Byte Character Set) UTF-16, UTF-8 문자열 길이를 바로 알 수 없다. WBCS(Wide Byte Character Set) UTF-32, UCS-2, UCS-4 문자셋과인코딩이 동일 SBCD, MBCS, WBCS 는 인코딩 방법이지 인코딩이 아님
  • 35. Reference Unicode 의 이해 – novo networks http://www.novonetworks.com/jamestic/Unicode_1.0.pdf 진숙의 유니코드 입문서 http://www.kristalinfo.com/K-Lab/unicode/Unicode_intro-kr.html MBCS 와 유니코드 http://www.animalpicturesarchive.com/jinsuk-kim/diary/read.php?2006/0203 위키백과– 유니코드, 유니코드 범위 목록 Unicode 5.2 Character Code Charts http://www.unicode.org/charts/ 조엘 온 소프트웨어 : 유니코드와 문자집합에 대한 고찰 http://www.joelonsoftware.com/articles/Unicode.html Character sets and codepages http://www.microsoft.com/typography/unicode/cscp.htm http://www.microsoft.com/typography/unicode/1250.gif 한글 코드페이지 http://www.unicode.org/charts/PDF/UAC00.pdf KS C 5601 완성형 코드 http://zbxe.bluegate.kr/42 http://whatisthat.co.kr/6
  • 36. Reference http://jof4002.net/Unicode VC++ : 유니코드를 표준 출력에 내보내기 http://kaistizen.net/EE/index.php/weblog/comments/unicode_hangul_to_stdout/ IdeAthinKING - C file’s orientation http://ideathinking.com/blog/?p=108 http://ideathinking.com/blog/?p=109 rein : 인코딩과 문자집합: Unicode http://rein.kr/blog/archives/280 rein : Windows Character Encoding: UCS2? UTF-16? http://rein.kr/blog/archives/585 STL string 사용시 wstring일때, 출력이 되지 않습니다. http://kldp.org/node/93573 http://en.wikipedia.org/wiki/Code_page http://gpgstudy.com/gpgiki/윈도우 다국어 프로그래밍 MBCS 와 UNICODE FAQ 정리 http://mynotepad.tistory.com/67
  • 37. Reference Unicode - (1) 개념 http://dodoubt.tistory.com/29 Standard output으로 unicode문자를 출력하기 (Win32 console application) http://dodoubt.tistory.com/35 Unicode - (2) UTF-16(wide character) in Windows http://dodoubt.tistory.com/36 Unicode - (3) UTF-8 in Windows http://dodoubt.tistory.com/38 Unicode - (4) 문자 개수 구하기, 변환(convert) code snippet http://dodoubt.tistory.com/40 window command prompt(cmd.exe)에서 사용하는 font 추가 및 변경하기 http://dodoubt.tistory.com/34 ASCII and Unicode quotation marks by Markus Kuhn http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html 유니 코드 (구원의 여신의 등장?) - 박우영 http://web.edunet4u.net/~han0416/%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%20%EA%B0%95%EC%A2%8C/chapter2/uni_code.htm Code2001, a Plane 1 Unicode-based Font http://www.code2000.net/code2001.htm wprintf/wcout and unicode characters in VS2005 http://blog.kalmbachnet.de/?postid=98
  • 38. Reference David Myriad Rosenbaum's Font Sanctuary (Ugaritic Font) http://davidmyriad.tripod.com/myriads.font.page.html http://www.alanwood.net/unicode/fonts-middle-eastern.html#ugaritic 외국어 지원을 위한 Unicode 활용 방법 http://www.ibm.com/developerworks/kr/library/l-linuni.html ASCII Table http://www.asciitable.com/ 심심할때 읽어보는 문자셋, 인코딩 이야기 http://blog.daum.net/_blog/tagArticleList.do?blogid=0Idq4&tagName=%EB%AC%B8%EC%9E%90%EC%85%8B#ajax_history_home 한글 인코딩 이야기 - (1) ASCII, 완성형, 조합형, EUCKR, CP949 http://heyjimin.tistory.com/14 한글 인코딩 이야기 - (2) 유니코드, UCS-2, UTF-8, UTF-16 http://heyjimin.tistory.com/15 http://namoda.springnote.com/pages/2017552 유니코드 볼 수 있는 에디터? KORAIS http://korais.sourceforge.net/screenshots.html