노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.


유니코드 지원이란?

우리가 흔히 "프로그램이 유니코드를 지원한다"라고 말할 때는 그 프로그램이 유니코드를 나타낼 수 있느냐가 아니라, 그 프로그램의 메뉴나 오류 메시지를 표현하는 코드 페이지가 유니코드이냐를 뜻합니다. 당연한 말이겠지만, 그 프로그램에서 유니코드 문자를 입력할 수 있는지는 전혀 고려하지 않습니다.

이때 프로그램 메뉴나 오류 메시지를 유니코드로 나타내는 경우에 네이티브로 유니코드를 지원한다는 표현을 사용하기도 합니다.

유니코드 출력

그렇다면 유니코드를 지원하는 프로그램만 유니코드를 올바르게 나타낼 수 있을까요? 유니코드를 지원하지 않는 프로그램은 유니코드를 올바르게 나타낼 수 없을까요? 그렇지는 않습니다. 유니코드 지원과 유니코드 표현은 아무런 관련도 없습니다. 아, 관련이 있기는 합니다. 특정 코드 페이지를 지원하는 프로그램은 그 코드 페이지에 해당하는 문자를 나타내기가 좀 더 쉽습니다.

그렇지만 그 둘 사이의 관계가 절대적이지는 않습니다. 화면 표시는 그저 화면 표시일 뿐 그 이상의 것이 아니기 때문입니다. 물론 텍스트 편집 프로그램의 경우에는 화면 표시가 매우 중요한 요소이지만, 실제 프로그램의 실행과는 별로 관련이 없습니다.

좀 더 전문적인 용어를 써서 말한다면, 유니코드 출력은 문자 인코딩(Character encoding)의 문제이고, 유니코드 지원은 문자 집합(Character set)의 문제입니다.

유니코드를 지원하지 않는 프로그램의 유니코드 출력 예시

CLCL

멀티 클립보드 프로그램인 CLCL은 유니코드를 지원하지 않는 프로그램, 곧 지원하는 문자 집합이 유니코드가 아닙니다. 그러나 클립보드 지원 프로그램이기 때문에 클립보드에 복사한 내용 가운데 유니코드가 있을 경우 그것을 잘 출력해 줍니다. 물론 이 경우 폰트가 잘 지원되어야 하지만, 그에 대해서는 논외로 합니다. 한편 CLCL도 유니코드 출력이 기본 기능은 아닙니다. 추가적인 DLL 파일이 필요하지만, 그것만 설치한다면 아무 문제 없이 유니코드 출력이 가능합니다. 더구나 그 DLL 파일이 유니코드를 네이티브로 지원하지도 않습니다.

예시 1 : 유니코드를 잘 나타내는 CLCL

예시 1 : 유니코드를 잘 나타내는 CLCL


예시 2 : 유니코드를 뭉개져 버린 CLCL

예시 2 : 유니코드를 뭉개져 버린 CLCL


위 두 화면은 유니코드를 CLCL이 어떻게 나타내는지를 보여주고 있습니다. 예시 1은 기본 출력인데, 현재 유니코드로 설정한 상태입니다. 기본값은 TEXT입니다. 예시 2TEXT일 때의 화면 출력을 보여 주고 있습니다. 게다가 예시 1예시 2는 현재 화면에 보이는 상태 그대로 붙여넣기가 가능합니다. 다시 말해 화면 출력과 프로그램의 유니코드 지원이 별 상관이 없다는 뜻이지요.

Notepad++

좀 더 확실하게 보여줄 필요가 있다면, 텍스트 편집기 가운데 유니코드 버전과 ANSI 버전을 함께 제공하는 프로그램을 선택하면 됩니다. 대표적인 프로그램이 바로 Notepad++입니다.

메모장의 유니코드 출력 - 옛한글은 한국어 영역이 아닌 유니코드 영역에 있다.

예시 3 : 메모장의 유니코드 출력 - 옛한글은 한국어 영역이 아닌 유니코드 영역에 있다.


Notepad++ ANSI 버전의 유니코드 출력

예시 4 : Notepad++ ANSI 버전의 유니코드 출력


Notepad++ 유니코드 버전의 유니코드 출력

예시 5 : Notepad++ 유니코드 버전의 유니코드 출력


위의 세 그림은 유니코드 버전이냐는 사실과 유니코드를 출력할 수 있느냐는 사실과는 관련이 적음을 보여주고 있습니다. 유니코드를 출력할 수 있느냐는 오로지 프로그램이 유니코드 폰트 및 유니코드 합자를 지원하는 알고리듬을 가지고 있느냐에 좌우됩니다.

관련 문서

 

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

한컴오피스 베타버전 버그 29 - 옛한글이 포함된 파일의 PDF 출력 버그

ᄒᆞᆫ글2010 베타버전에서 출력한 PDF 파일을 살펴보다가 이상한 점을 발견했습니다. 그래서 PDF 파일 출력에 대한 사항을 살펴보게 되었습니다. 매번 느끼지만 옛한글과 얽히면 판도라 상자처럼 온갖 악(벌레)이 튀어나옵니다. 특별히 이번 포스팅은 놈팡이 백수가 드리는 일요스페셜 또는 월요일 선물이라고 생각하시면 됩니다.

  • 참고 1 : 이 글은 매우 많은 그림을 포함하고 있어서 읽어오는 데 시간이 오래 걸릴 수도 있습니다. 느긋하게 기다려 주십시오.
  • 참고 2 : 이 글에서 사용한 그림과 출력한 PDF 파일 및 문서 파일을 압축 파일로 제공합니다. PDF-Output.zip 파일(1.31 MB)을 받으세요.

벌레의 유형

ᄒᆞᆫ글 씨! 옛한글을 화면에 잘 나타내면 끝이 아닙니다. 화면 출력뿐만 아니라 프린트 출력이나 PDF 출력도 잘 나타내 주어야 합니다.

개발자의 답변

2010년 2월 1일 버그 리포팅을 한 상태입니다.

벌레의 발견

ᄒᆞᆫ글에서 올바르게 나타나는 옛한글

ᄒᆞᆫ글에서 올바르게 나타나는 옛한글


PDF 파일에서 해괴하게 바뀐 옛한글 - 이건 어느 프로그램에서 출력했을까요?

PDF 파일에서 해괴하게 바뀐 옛한글 - 이건 어느 프로그램에서 출력했을까요?

사용할 프로그램

오피스웨어 프로그램

  • 한컴오피스2010 베타버전 : 처음에는 ᄒᆞᆫ글만 시험
  • OpenOffice Writer v3.1.1 : Writer만 시험

PDF 제작 프로그램

위에서 PostScript?라는 부분은 gsdll32.dll 파일을 발견하였기 때문에 표시하였습니다.

PDF 보기 프로그램

검증 1 : ᄒᆞᆫ글에서 출력하기

ᄒᆞᆫ글에서 프린트 - PDF 출력

ᄒᆞᆫ글에서 프린트 - PDF 출력

위와 같이 인쇄 화면을 불러 PDF로 출력하는 가상 프린터를 선택하여 [인쇄] 단추를 클릭하면 만들 수 있습니다.

PDF를 지원하는 가상 프린터 1

PDF를 지원하는 가상 프린터 1


PDF를 지원하는 가상 프린터 2

PDF를 지원하는 가상 프린터 2

위의 그림 가운데 Microsoft XPS 부분과 PC-000의 Samsung ML-1610 부분은 PDF 출력 가상 프린터가 아닙니다.

혹시 시험해 보고 싶은 사람은 프로그램마다 파일로 출력하는 방식이 다르므로 각자 프로그램 설명서를 참조하여 출력하기 바랍니다. 이 글에서는 다루지 않습니다.

각각의 PDF 출력 프로그램을 이용하여 PDF 파일을 만들었습니다. 이것을 PDF 보기 프로그램을 살펴보겠습니다.

  • 알파벳 순서로 시험했으므로 첫 번째 파일 또는 이상이 있는 파일만 나타내겠습니다.
  • 출력 품질 자체는 비교하지 않습니다.
  • 복사 작업은 평가하지 않습니다. PDF 출력의 경우 옛한글을 정상적으로 복사할 수 없었습니다.

Adobe Reader

012

ePapyrus PDF-Pro 4 Free

012

Foxit Reader

이미 결론이 난 듯하죠? 하지만 ᄒᆞᆫ글만큼은 끝까지 해보겠습니다.

012

UNIDOCS ezPDF Reader

012

결론 1

한컴오피스2010 베타버전에서 제공하는 Haansoft PDF 가상 프린터의 출력과 PDF로 저장하기 기능으로 저장한 PDF 파일에서는 옛한글이 제대로 나타나지 않았습니다.

검증 2 : 오픈오피스에서 출력하기

오픈오피스에서도 한컴오피스2010 베타버전에서 제공하는 Haansoft PDF 가상 프린터의 출력 기능이 작동합니다. 또한 오픈오피스에도 PDF로 내보내기 기능이 존재합니다.

오픈오피스의 예제 글귀

오픈오피스의 예제 글귀

앞서 올린 글에서 밝혔듯이 함초롬 글꼴은 ᄒᆞᆫ글에서만 예쁘게 나옵니다.

0123456

결론 2

위 그림과 같이 오픈오피스에서 출력한 PDF 파일은, 비록 그 겉모습은 예쁘지 않았지만, 단 하나의 오류도 나타내지 않았습니다. 심지어 한글과컴퓨터사에서 제공하는 Haansoft PDF 가상 프린터에서도 정상 출력하였습니다.

검증 3 : ᄒᆞᆫ셀과 ᄒᆞᆫ쇼에서 출력하기

지금까지 PDF 보기 프로그램에 따라 화면 출력 결과가 다르지 않았기 때문에 이제부터는 어도비 리더만 보이겠습니다. 또한 다른 PDF 가상 프린터는 제외하고, 한글과컴퓨터에서 제공하는 두 기능만 사용하겠습니다.

ᄒᆞᆫ셀은 흉칙한 모양을 보여줍니다.

ᄒᆞᆫ셀은 흉칙한 모양을 보여줍니다.


ᄒᆞᆫ셀은 흉칙한 모양을 보여줍니다.

ᄒᆞᆫ셀은 또다시 흉칙한 모양을 보여줍니다.


ᄒᆞᆫ쇼는 예쁜 모양을 보여줍니다.

ᄒᆞᆫ쇼는 예쁜 모양을 보여줍니다.


ᄒᆞᆫ쇼는 예쁜 모양을 보여줍니다.

ᄒᆞᆫ쇼는 예쁜 모양을 보여줍니다.

벌레 분석 및 덧붙이는 말

처음 이 벌레를 발견했을 때 Haansoft PDF 또는 PDF로 저장하기 기능에서 오류가 있다고 생각했습니다. 그런데 실험을 해 본 결과 그 두 기능보다는 한컴오피스의 출력 기능에 벌레가 사는 듯싶습니다.

이번 글을 작성하면서 발견한 벌레입니다. 벌레에도 급과 격이 있음을 보여주는 엄청난 놈입니다. ᄒᆞᆫ글2010 베타버전과 옛한글 표기 오류에서 발견한 벌레는 애송이였습니다. 이 벌레야말로 압권입니다.

모가지가 떨어진

모가지가 떨어진

위의 벌레는 ᄒᆞᆫ글 ᄒᆞᆫ글이라는 글귀를 입력한 뒤에 실수로 스페이스바를 계속 누르고 있어서 발견한 벌레입니다. 본문 작성하면서 단순노동[각주:1]에 짜증도 나고 했는데, 이걸 발견한 순간 헛웃음이 나오면서 짜증이 사라지더군요. 저는 별수없이 남의 불행을 먹고 사는 버그 리포터인가 봅니다. "혹시 나 변태?"라는 걱정도 들더군요.

본문에서 사용한 PDF 파일의 섬네일 이미지도 첨부해 봅니다.

모두 18개의 섬네일 이미지

모두 18개의 섬네일 이미지

장장 이틀간(준비까지 사흘간) 작성한 포스팅을 마치겠습니다. 2월에도 기운 내서 힘 차게 잘 지내시기 바랍니다. ^.^b

관련 벌레

이 벌레와 관련이 있는 벌레는 다음과 같습니다.

관련 문서

내부 문서

외부 문서

PDF 제작 프로그램

PDF 보기 프로그램

이 글은 스프링노트에서 작성되었습니다.


  1. 프린트를 수십 번 하고, 그것을 다시 문서 보기 프로그램으로 열었습니다. 그 작업을 하다 보면 그게 왜 단순노동인지 뼈저리게 느끼게 됩니다. 거기에 더하여 스크린샷도 그만큼 찍어서 편집하고 웹에 올리는 작업을 해 보면, 못 느끼면 목석이지 사람이 아닙니다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

티스토리에 주석을 달면 가끔 한 글자씩 빼먹고 나타내는 경우가 있다. 특히 \ 문자(역슬래시)를 나타낼 때 항상 한 글자씩 빼먹고 나타낸다.

벌레의 유형

  • 덧셈을 못하는 벌레이다.
  • 그게 아니라면 자신의 본문을 화면 표시가 아니라 나눗셈으로 착각하는 벌레이다.

벌레의 발견

우연히 주석에 하드디스크 파일의 경로를 나타내다가 발견하였다.
이것은 스프링노트에서 [footnote] 표시를 붙여 나타내어도 나타나면, 티스토리에서 주석을 붙여도 나타났다.

벌레 분석

우선 편집 화면을 보면 다음과 같다.

티스토리 글쓰기(편집) 화면

티스토리 글쓰기(편집) 화면

위에서 보면 각주 부분에 어떤 파일의 경로가 있다. 파일 경로이므로 \ 문자(역슬래시 문자)가 들어가야 한다. 그 부분만 따로 떼면 다음과 같다.

위와 같이 입력했다. 다만 알아보기 쉽게 \ 문자를 자주색으로 나타냈으며, 실제로는 티스토리 글쓰기(편집) 화면처럼 모두 검은색이다.

미리보기를 하면 다음과 같다.

주석(각주)에서 \ 문자(역슬래시)를 나타내는 예제 미리보기

주석(각주)에서 \ 문자(역슬래시)를 나타내는 예제 미리보기

그런데 위에서 보면 조금 이상한 부분이 있다. 일단 그 부분만 떼어 보자.

\ 문자(역슬래시 문자)가 전혀 나타나지 않는 각주 부분

\ 문자(역슬래시 문자)가 전혀 나타나지 않는 각주 부분

무슨 까닭에서인지 \ 문자(역슬래시 문자)를 전혀 나타내지 못하고 있다.

벌레 잡기

내 짧은 지식으로 생각건대, 이것은 C 언어에서 문자열을 나타낼 때와 비슷한 현상이다. 다시 말해 C언어에서 printf 함수로 문자열을 출력할 때 \ 문자를 나타내려면 \ 문자를 1회 입력하면 안 된다. 반드시 2회, 그러니까 \\ 처럼 2회 입력해야 \ 문자를 1회 출력해 준다.

문제는 왜 이렇게 복잡한 방법으로 입력하게 만들었느냐이다. 이런 방식은 컴퓨터를 익숙지 않거나, 컴퓨터 언어(C 언어, 또는 자바스크립트 언어)를 전혀 모르는 사람에게는 꽤 큰 불편을 불러오는 악성 벌레이기 때문이다.

아무튼 이 문제를 해결하려면 \ 문자를 2회 겹쳐서 표기하면 된다.

\ 문자(역슬래시)를 2회 입력한 편집 화면

\ 문자(역슬래시)를 2회 입력한 편집 화면

각주(주석) 부분만 떼어 내면 위와 같다.

미리보기를 하면 아래와 같다.

주석 부분에 파일 경로명이 제대로 나타난 미리보기 화면

주석 부분에 파일 경로명이 제대로 나타난 미리보기 화면

제작자/제공자의 답변

2009년 5월 30일 아침에 오류 보고했다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

글 보관함