일어문장을 출력하는데 &가 출력되지 않아 분석을 해보니
0xFF06 이라는 이상한 영역으로 문자열이 나오는 것을 발견..
Fullwidth 라는 녀석인데.. 일종의.. 고정폭 폰트 처럼 사용가능한 영역일거 같긴한데..

아무튼 폰트 갯수 제한으로 인해 따로 처리할 수 없기에
일반적인 0x0021 영역으로 매핑해도 무방할 듯 하다.


2014/06/09 - [모종의 음모/다국어 지원] - 일본어 유니코드

Posted by 구차니

댓글을 달아 주세요

일본어는
히라가나 영역(0x3050~309F)
카타카나 영역(0x30A0~30FF)
그리고 한자 영역(0x4E00~9FFF CJK Ideograph) 을 사용한다.

웬만한 건 다 IME에서 처리해서 유니코드 상에서는 조합을 해줄건 없기에
반음("),반탁음(º)이라던가 요음(작은 글씨)은 1:1로 매칭된다.
머.. 좋게 말하면.. 오토마타란게 필요없을 정도로 참.. 간단한 언어?
[링크 : http://blog.naver.com/kisshaedo/140171257202]


결론 : 별거 없다. 그냥 있는대로 그대로 출력하면 끝  
Posted by 구차니

댓글을 달아 주세요

러시아어와 그리스어를 포함하면 128자를 넘어서 조금 골때려 질수도 있겠지만
아무튼.. 정리중..

[링크 : http://ask.nate.com/knote/view.html?num=1261043] 스페인어
[링크 : http://blog.naver.com/coolwestlife/40056861990] 프랑스어
 [링크 : http://ko.wikipedia.org/wiki/프랑스어]
 [링크 : http://ko.wiktionary.org/wiki/프랑스어_알파벳]
[링크 : http://blog.daum.net/ausland/2758416] 독일어
 
Posted by 구차니

댓글을 달아 주세요

히라가나 0x3040-0x309F  [링크 : http://www.unicode.org/charts/PDF/U3040.pdf]
가타카나 0x30A0-0x30FF  [링크 : http://www.unicode.org/charts/PDF/U30A0.pdf]

MS Mincho (winXP 기본)      [링크 : http://mwultong.blogspot.com/2006/08/qna-xp-japanese-font.html]
Meiryo (winVISTA 기본)        [링크 : http://tibetinside.com/13]




묶는 방법이 먼가해서 눌러봤더니 이런 신기한 창이?
아무튼, 일본어로 하니 기본적으로 MS Mincho 폰트로 변경되었다.
Posted by 구차니

댓글을 달아 주세요

  1. 저 들렀습니다~~히히

    2010.05.19 19:17 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 우가우가 차차차~~~(의미불명) ^^;;;

    2010.05.20 10:33 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 오호~! 나도 우가우가~~!

    2010.05.20 13:52 신고 [ ADDR : EDIT/ DEL : REPLY ]

Hebrew                              Range 0x0590 - 0x05FF
Hebrew Presentation Forms  Range 0xFB00 - 0xFB4F


히브리어에 대한 유니코드 영역이다.
앞 부분은 조합되지 않은 영역이고
뒤의 presentation form은 조합되어 나오는 코드에 대한 영역이다.

(그러니까 unicode 변환하면 0x0590-0x05FF 영역의 값만 나오고
automata를 통해 0xFB00-0xFB4F 영역으로 출력을 해야한다.)


[링크 : http://www.unicode.org/charts/]
Posted by 구차니

댓글을 달아 주세요

위는 태국어
아래는 히브리어


태국어가 획이 많을뿐, 느낌은 비슷하다?

이스라엘에서 국어로서 히브리어/아랍어를 사용하며,
아랍어와 같이 오른쪽에서 왼쪽으로 글을 쓴다.
유니코드 상에서는 0x0590 ~ 0x05FF 영역이며, 0xFB1E ~ 0xFB4F 영역에도 존재한다. (뒤에 영역은 머지?)
모양을 보니, 아랍어와 같이 첨자가 붙어 조합을 해야할 것으로 보인다.


[링크 : http://enc.daum.net/dic100/contents.do?query1=10XXX32946] 타이어
[링크 : http://enc.daum.net/dic100/contents.do?query1=10XXX12664] 히브리어
[링크 : http://ko.wikipedia.org/wiki/타이]
[링크 : http://ko.wikipedia.org/wiki/이스라엘]
[링크 : http://www.hope-ind.com/Elpis/Elpis_home.htm]


아무튼 계통이 전혀 다른 언어임에도 불구하고 유사해 보이는건.. 특이한 경우인가?
 언어 계통따이까다이어족
 깜따이어파
  Be-Tai
   Tai-Sek
    타이어군
     남 서타이
      동타이
       Chiang Saeng
        타이어
 아프리카아시아어족
 셈어파
  서셈어군
   중 부셈어
    북서셈어
     가나안어
      히 브리어


Posted by 구차니

댓글을 달아 주세요

유니코드에 있어 한글 오토마타는 쉬운편이다.
아무튼 초성/중성/종성 을 수식대로 입력을 하면 딱! 하고 코드값이 나오는 형식이다.
제한적이지만 어느정도 한글창제 원리에 맞추어 "조합형" 식으로 나열을 했기 때문이다.

한글 조합하기
한글글자 = 초성 * 21 * 28 + (중성 - 19) * 28 + (종성 - 40) + BASE_CODE(한글코드 테이블의 첫번째 문자코드)

예) 강 = ㄱ + ㅏ + ㅇ 
         = 0 * 21 * 28 + (19 - 19) * 28 + (61 - 40) + 0xAC00 = 0xAC00(44032) + 21
         = 44053
         = 0xAC15

[링크 : http://codepedia.tistory.com/42]

한글 분해하기
Jong = UniValue % 28;
Jung = ( ( UniValue - Jong ) / 28 ) % 21;
Cho = parseInt (( ( UniValue - Jong ) / 28 ) / 21);

[링크 : http://zextor.tistory.com/2669852]

한글 갯수
초성은 19개
중성은 21개
종성은 28개

정렬 순서
첫소리 ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
가운뎃소리 ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
끝소리 ( ) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ

[링크 : http://kudak.egloos.com/740202]
[링크 : http://www.w3c.or.kr/i18n/hangul-i18n/ko-code.html]
[링크 : http://ko.wikipedia.org/wiki/한글]

초성

r

R

s

e

E

f

a

q

Q

t

T

d

w

W

c

z

x

v

g

중성

k

o

I

O

j

p

u

P

h

hk

ho

hl

y

n

nj

np

nl

b

m

ml

l

종성

r

R

rt

s

sw

sg

e

f

fr

fa

fq

ft

fx

fv

fg

a

q

qt

t

T

d

w

c

z

x

v

g


---
2014.03.26  추가

[링크 : http://blog.naver.com/netcrazy0/110066486580] 코드
[링크 : http://www.typographyseoul.com/181344]
Posted by 구차니

댓글을 달아 주세요

  1. 신씨

    raf629navecom
    으로 한글 두벌식 오토마타 c언어 소스 보내줄 수 있나요??

    2013.05.17 13:08 [ ADDR : EDIT/ DEL : REPLY ]

회사에서 이야기 하는 BOM과는 다르다!(Bill of Material)
아무튼 이 BOM이라는 녀석은
일종의 헤더로서

텍스트 파일의 인코딩을 알려주는 역활을 한다.
예를 들어 UTF-8, ANSI 이런 구분을 하는 것도 이 BOM이 존재하기 때문에 가능한 것이다.


Bytes Encoding Form
00 00 FE FF UTF-32, big-endian
FF FE 00 00 UTF-32, little-endian
FE FF UTF-16, big-endian
FF FE UTF-16, little-endian
EF BB BF UTF-8
[링크 : http://www.unicode.org/faq/utf_bom.html]

[링크 : http://mwultong.blogspot.com/2006/05/qna-unicode-bom-byte-order-mark.html]
[링크 : http://devhome.tistory.com/11]
[링크 : http://en.wikipedia.org/wiki/Byte_order_mark]
Posted by 구차니

댓글을 달아 주세요

우리가 이야기 하는

kr(국가코드)
kor,ko (언어코드)

들은 iso 639와 iso 3166에 정의되어 있다.

[링크 : http://en.wikipedia.org/wiki/ISO_639] 언어명에 대한 표준
[링크 : http://en.wikipedia.org/wiki/ISO_3166] 국가명에 대한 표준
Posted by 구차니

댓글을 달아 주세요

알파벳과 유사한것들이 있기에 VFD의 CGRAM을 이용하여 제한된 문자열 내에서
여러나라말을 지원해야 할 경우가 생겨 잠시 노가다를...

일단 A B E K H O ... 이러한 것들은 알파벳과 유사하게 생겼고,
제한된 크기인 5x7 에서 표시 할 수 없으므로(혹은 식별이 힘든 문자들이므로)
알파벳과 동일하게 사용한다면 상당히 문자의 갯수를 줄일 수 있다.

목표치는 총 64개에 러시아어를 출력할 수 있도록 맵핑을 해야 하므로
96개중 32개(대소문자 포함한다면 각 문자별 16개)의 문자를 제외하면 된다.

А В Е К М Н О Р С Т У Х Ѕ І Ј
а в е к м н о р с т у х ѕ і ј

총 30개의 알파벳과 유사하게 생긴 러시아어이다.
테이블의 총 92개의 문자중에 30개 제외 되므로 64보다 작은 62개가 된다.


iso8859 cyrillic used character
1 А 0x0410
33 а 0x0430
 


 

2 Б 0x0411
34 б 0x0431
65 Ё 0x0401
79 ё 0x0451
3 В 0x0412
35 в 0x0432
66 Ђ 0x0402
80 ђ 0x0452
4 Г 0x0413
36 г 0x0433
67 Ѓ 0x0403
81 ѓ 0x0453
5 Д 0x0414
37 д 0x0434
68 Є 0x0404
82 є 0x0454
6 Е 0x0415
38 е 0x0435
69 Ѕ 0x0405
83 ѕ 0x0455
7 Ж 0x0416
39 ж 0x0436
70 І 0x0406
84 і 0x0456
8 З 0x0417
40 з 0x0437
71 Ї 0x0407
85 ї 0x0457
9 И 0x0418
41 и 0x0438
72 Ј 0x0408
86 ј 0x0458
10 Й 0x0419
42 й 0x0439
73 Љ 0x0409
87 љ 0x0459
11 К 0x041A
43 к 0x043A
74 Њ 0x040A
88 њ 0x045A
12 Л 0x041B
44 л 0x043B
75 Ћ 0x040B
89 ћ 0x045B
13 М 0x041C
45 м 0x043C
76 Ќ 0x040C
90 ќ 0x045C
14 Н 0x041D
46 н 0x043D
 


 

15 О 0x041E
47 о 0x043E
77 Ў 0x040E
91 ў 0x045E
16 П 0x041F
48 п 0x043F
78 Џ 0x040F
92 џ 0x045F
17 Р 0x0420
49 р 0x0440







18 С 0x0421
50 с 0x0441







19 Т 0x0422
51 т 0x0442







20 У 0x0423
52 у 0x0443







21 Ф 0x0424
53 ф 0x0444







22 Х 0x0425
54 х 0x0445







23 Ц 0x0426
55 ц 0x0446







24 Ч 0x0427
56 ч 0x0447







25 Ш 0x0428
57 ш 0x0448







26 Щ 0x0429
58 щ 0x0449







27 Ъ 0x042A
59 ъ 0x044A







28 Ы 0x042B
60 ы 0x044B







29 Ь 0x042C
61 ь 0x044C







30 Э 0x042D
62 э 0x044D







31 Ю 0x042E
63 ю 0x044E







32 Я 0x042F
64 я 0x044F










Posted by 구차니

댓글을 달아 주세요