ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
2014 ? B2EN Consulting All Rights Reserved
????????????????
-- ??? ????
2014. 5. 15.
?????? ???
2014 ? B2EN Consulting All Rights Reserved
I. ????
II. ??? ?? (IT ??)
III. ??? ??? ??
IV. ????
V. ??? ????
2014 ? B2EN Consulting All Rights Reserved
I. ????
1. ??? ???????
2. ?? ????
| ??? ?????? ?? ? ????
??? ???????
3
| ??? ?????? ?? ? ????
??? ???????
4
??
? ??? ??
? ?? ???
? ????
? ????
? ??
?
? ??
? ??
?? ??
? ??
? ?? ??
? ??
? ?? ??
??
? ??? ???
? ??
? ????
2014 ? B2EN Consulting All Rights Reserved
II. ??? ?? (IT ??)
1. ?? ??
2. ????
3. ????
4. ?? ??
| ??? ?????? ?? ? ????
??? ??
6
??? ??
?3,500
??? ??
?100
??: ??????
| ??? ?????? ?? ? ????
?? ?? ??
7
57.35
16
11
1.14
2
1
6.15
8
5
16.49
25
4
5.43
27
55
0
10
20
30
40
50
60
70
80
90
100
Native Speakers
by Population
Internet User
Language
Internet
Content
English
Chinese
Spanish
Arbic
Portuguese
Russian
Japanese
German
Korean
French
Other
1) ?? : wikipedia.org
2) ?? : w3techs.com
1) 2) 2)
| ??? ?????? ?? ? ????
???? ¨C ??? LTR(Left to Right)
? ????? ??????, ????
? ???? ??
8
???? ???? ??? ???
???? ???? ???? ??.
??? ??? ????
?? ??, ???? ?? ????
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
| ??? ?????? ?? ? ????
???? ¨C ??? RTL(Right to Left)
? ????? ??????, ????
? ?? ????: Arabic, Persian, Hebrew
9
| ??? ?????? ?? ? ????
???? ¨C BiDi(bi-directional)
? ????? ??? ?? ?????? ?? ??????
? Chinese
¡ù ??? ??? ???? ????? ??, ?? ?? ??? ???? ??? ????? ?
10
| ??? ?????? ?? ? ????
???? ¨C ???
? ?? ??? ????, ??????
? ?? ?, ?, ?
11
| ??? ?????? ?? ? ????
????? ??????? ??? ??!
12
"¡­??? ? ?? ??????? ???? ???? ????
????. ?? ???? ???? ?? ?(??????)?
??? ?? ????¡­"
Oracle said,
| ??? ?????? ?? ? ????
?? ??character set? ???encoding
13
SOS
encoding
decoding
SOS character set
| ??? ?????? ?? ? ????
?? ??
? ?? ?? character set
? ?? ????? ???? ??? ???? ??
? ?? ??? character encoding
? ????? ?? ?? ??? ???? ?? ???
? ?? ?? ??? ?? ??? ??? ??? ?? ???? ???,
?? ????? ??? ???? ???? ??? ??
? ????? code page
? ????? ???? ?? IBM?? ???? ?? ??
? ????, ???? superset/subset
? ? ?? ??? ???? ?, ? ?? ??? ??? ?? ?? ??? ??? ???? ? ?? ????
? ??? ???? strict superset : ?? ? ?? ??? ?
14
2014 ? B2EN Consulting All Rights Reserved
III. ??? ??? ??
1. ???
2. ?????
3. ??? ?? vs ??? ??
4. EUC-KR
5. CP949
| ??? ?????? ?? ? ????
??? ASCII
? American Standard Code for Information Interchange ¨C ?? ?? ?? ?? ??
? 7bit? ?? ???: 27(128)?
? ??(10), ???(52), ????(32), ????(33), ????(1)? ??
? ??? KS X 1003? ASCII? ??? ??
16
??
???
??
????
| ??? ?????? ?? ? ????
????? Extended ASCII
? 7bit ???? ?? 1bit? ??? ???? ?? (??? ? ?????)
17
CP437 ISO/IEC 8859-1
? IBM PC? MS-DOS?? ??
? ??, ??, ?? ?? ?? ?? ??
? ??? ? ? line ??
? ??? ?? ?? ??? ???
? HTML ??? ?? ???
? CP437?? ? ?? ?? ?? ?? ??
? ???? CP1252? ??(ISO/IEC 8859-1 ? CP1252)
| ??? ?????? ?? ? ????
????? vs ?????
? ?? ??? ??? ??? 1985~1995?? ??
18
????? ?????
????
? ??,??,?? ??? ??? ???? ???? ?
? ??? ? ??? ??
?) ?+?+? ? ?
? ??,??,??? ?? ??? ??? ??? ???
???
?) ?
??
? 2??? ???
????(1??) + ??(5??) + ??(5??) + ??
(5??) : 1 xxxxx yyyyy zzzzz
? ?? ??? ??? ??
? ????? ??? ?? ???? ?? 2,350? ??
?? ??
? ?? ?? ??? ???
? ?? ??? ?? ??? ? ??? ?
? ? ??? ???? ?? ??.
??
? ?? ??? 11,172?? ?? ??? ??? ???
?? ??? ??? ?? ? ??
? ??? ??? ???? ??
?) 3??? ???, 2??? ???
2??? ???? ?????, ?????,¡­
? ?? ???? ?? ??
(?? ??? ?? ?? ??)
? ?? ?? ?? ??
?? ??
? ???? ???: ??? ???
? ??, ??, ??, ? ? ???: ?? ??? ???
? ?????? (?? ???)
?? X (?? ???) O (??? ??? : ISO-2022)
? KSC5601 ?? ? MS???95? ?? ? Unicode 2.0 ??? ???
| ??? ?????? ?? ? ????
EUC-KR (Extended Unix Code - Korean)
? ???? ??? (1~2byte)
? 00-7F : 1byte? ????, KS X 1003(ASCII? ??)? ????.
80-FF : 2byte? ??? ????, KS X 1001(? KS C 5601)? ????.
? ??? ??? ??? ??? ?? 1 byte? ???? ?, 1 byte ???? 2 byte ???? ?? ??
? KS C 5601 (ISO 2022? ??)
? 1byte, 2byte ?? A1~FE??? ???? ??(?? ??? ??? 94*94=8836?)
? ?? ???? ?? ?? 2,350?, ?? 4,888?, ???? 1,128?, ?? 470?? ??
19
ASCII ??
??, ???, ??
?????
??
80xx
90xx
A0xx
B0xx
C0xx
D0xx
E0xx
F0xx
00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0
1byte? ??
2byte? ??
00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0
| ??? ?????? ?? ? ????
EUC-KR ¨C ??
? KSC5601? ?? 2,350?? ?? ??? ?? ?? ???
? 2,350?? ?? ???? ?? ???? ?? ???.
? ?? ??? ?? ?? ???
20
˜· ˜· ˜· ˜·
D1E2 D5A5 E4C5 E8F9
? ? ? ?
? ?? ?? ??? ??
? ?? ??? ?? ?? ???? ??? ???? ??
? ?? ??? ???? ??? ????? ??? ?? ??? ?? ???
? ??????? ??? ??? ??? ??? ??? ?? ???
?(X)??(O), ?(X)??(O), ?(X)??(O), ?(X)??(O), ?(X)??(O)
??? ?? ? ???? ??? ????.
? ??? ?? ? ???? ??? ñ„???.
| ??? ?????? ?? ? ????
CP949 (?? ?????)
? Microsoft?? EUC-KR? ???? ?? ???
? MS???95?? ?? ??? ? ??? ??
? KSC5601? ??? ????? ?? 8,822?? ??
? ?? ??? ????
? ?? EUC-KR? ???? ??
? ?? EUC-KR? CP949? ?? (???? ??????? EUC-KR ??)
? KSC5601 ? CP949
ASCII ??
??, ???, ??
?????
??
?? ?????
80xx
90xx
A0xx
B0xx
C0xx
D0xx
E0xx
F0xx
00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0
00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0
1byte? ??
2byte? ??
21
| ??? ?????? ?? ? ????
CP949 (?? ?????) ¨C ??
? ?? ???? ???? ? 1 byte / 2 byte? ??? ?? ?? ??
? ?? EUC-KR??? 1~2 byte? ?? ??? ???? ???? ?? ??
? ?? ? ????? ???? ??? ?
? ??? ?? ?? ???? ???? ?? ??? ??? ??? ?? ? ??
? ?? ?? ??
? ??? ?? 2,350?? ?? ??? 8,822???? ???? ?? ???? ??
? ?? ??? ???? ? ?, ???? ?? ???? ?? ??
? ? ? ? ? ?
8C63 94EE B0A1 B8B6 C164 C8FD
? ? ? ? ? ?
?????
????
? ? ? ? ? ? ? ? ? ?
BE C8 B3 E7 C7 CF BC BC BF E4 B9 DD B0 A9 BD C0 B4 CF B4 D9
? ñö ¾¿ ? °¢ ¸­ ? ? Çó ?
22
2014 ? B2EN Consulting All Rights Reserved
IV. ????
1. ??
2. ??
3. ???? ??
4. ??? ?? ??
5. UTF
| ??? ?????? ?? ? ????
???? ??
? ???? Unicode
? ??? ?? ??? ????? ???? ???? ?? ? ??? ??? ?? ??
? ?? ??, ?? ???, ?? ?? ??????, ???? ??? ?? ???? ?? ??
? ???? ?? ???? ??? ????? ???? ??? ?
? ??? ??? U+xxxx ??? ??
? ???? ???? Unicode Consortium
? ???? ?? ?? ??? ???? ?? ??? ??(1989)
? ISO/IEC 10646
? ??????ISO??? ??????? ??? ?? ??? ?? ???
? ???? ????? ???? ????? ??? ??? ISO/IEC-10646? ??
? ???? ??? ??? ?? ??? (????:??/????, ISO:????)
24
| ??? ?????? ?? ? ????
???? ??
25
1.0
2.0
3.1
5.2
1991
1996
? ????
? ?? 2,350? ??
? ???? ?? 4,306? ??
? ISO/IEC 10646-1:1993 ??
1.11993
? ? 11,172?? ??? ??
(???, ???, ??, ?? ?? ?? ???? ??? ???? ??? ??)
? ??? ?? ??? ??? ?? ???? ??? ??? ??.
? ? ?? ??? ¡°?? ??? ??? ? ??? ? ??¡±? ??? ??
7,161
34,233
38,950
2001 94,205 ? ?? ??? ?? ??
2009 107,361 ? ???(??) ??
6.32013 110,187 ? ?? ????
3.01999 49,259 ? ??? ???? ?? 216(=65,536)?? ????? ??? ????? ???
? ?? 4Byte ??? ??
? ??? ??? ??, ??? ?? ??(Supplementary Planes)? ??
?? ???????
??
| ??? ?????? ?? ? ????
?????? ??
? Unicode 1.0
? ??? ??? ??? 3? ?? ?? ??? ???? ????
????? ??? 11,172?? ?? ?????? ????? ????.(65,536? ? ?? ??? ??)
???? 1.0? KSC5601-1987??? ???? ??
? Unicode 2.0
? ???95/NT??? ?? ?? ??? ???? MS? ??
? ???? 2.0?? ??? ??? ????? 11,172?? ??
? ?? ???? ?? ?? ??? ???? ??? ? (??? ??¡¤??¡¤??¡¤?? ??? ??)
? ??? ?? ??
? ??(19) * ??(21) * ??(28) = 11,172?
? ????? ??? KSC5601??? ???? ??? ??? ?? ??? ?? ??
? ?? ??? ???? ??? ??? ??? ? ??
26
| ??? ?????? ?? ? ????
??? ?? ?? CJK(Chinese-Japanese-Korean) Unified Ideographs
? ???? ??
? ? ??? ?? ??? ????? ??: ???? ?? ?? ??? ??
? ?? EUC-KR, ??:SHIFT-JIS, ??: GB18030
? ?? ¨C ?? 4,000? ??, ??? ????? ???? 40,000? ??
? ??? ????? ?? ???? ?? ???? ??? ??
? EUC-KR? ??? ?? ?? ?? ????
? ?? ?? ?? ??? ?? ??? ¨C ?,?,?,?(˜·)
? ???? ??
? ??¡¤??¡¤??(¡¤???)? ?? ?? ??? ???
? ??? ??? ??? ??? ???
? ?? ????? ???? ???? ??? ?? ?? ?? ???? ??
? ?? ???? ?? ???
27
??? ???
???
??
27
| ??? ?????? ?? ? ????
?? ??? ?? Basic Multilingual Plane
? U+0000 ~ U+FFFF (? 65,536?)
? ???? ???? ??? ???? ??
???? 11,172?
???? 256?
?????? 208?
28
| ??? ?????? ?? ? ????
[??] ?? ??? ?? ? [AC] ??
29
| ??? ?????? ?? ? ????
?? ?? Supplementary Plane
? U+10000 ~ U+10FFFF
? ??? ? ?? ? 65,536?? ??? ??? ? ??
? ??????? ? 17?? ??? ????, Unicode 6.3 ???? 6?? ??? ????
BMP SMP
0000-FFFF 10000-1FFFF 20000-2FFFF
Plane 0 Plane 1 Plane 2
100000-10FFFF
Plane 16
F0000-FFFFF
Plane 15
???
???? ??
?????,
????,
????,
?????,
??, ??? ?
SIP
?? ?/?/?
??
Private Use Area Planes
??? ??
30
| ??? ?????? ?? ? ????
[??] ???? ??
31
U+1D11E
U+0041 U+0414 U+AC00
U+13000 U+1F018 U+1F600 U+1F3E7
U+6A02
˜·? ˜·? ˜·? ˜·?
U+0031
??
???
??
??
???
??
U+6A02 U+F914 U+F95C U+F9BF
?? ??
?? ??
| ??? ?????? ?? ? ????
UTF
? UCS(Universal Character Set) Transformation Format
32
UTF-8 UTF-16 UTF-32
?? ? ?? (1~4 byte) ? ?? (2, 4 byte) ? ?? (4 byte)
??
? ASCII : 1 byte
? ?? : 2 byte
? ??? ?? : 3 byte
? ?? ?? ?? : 4 byte
? ?? ?? ??? : 2 byte
?? ?? ??? : 4 byte
? ?? ?? : 4 byte
?? ???
? HTML, ???? ??? ???
?
? MS Windows, Unix ? OS ? ? ?? ??
??
? ASCII? ??? ???
(?? ???? ?? ???)
? Western Script? ??
? ????? ???? ????
??? BMP? ?? ??? ??
2byte??? ? ? ??
? Unicode? ??? ?? ??
??
? ???? ??? ?? ? ???? ???? ??? ??
??? ??? Byte Order Mark
(=Endian)? ???
? ?? ??? ?? ?
? ??? ??? ????
(4 byte? ??? ?)
? UTF-16?? ???
| ??? ?????? ?? ? ????
UTF-8 Encoding/Decoding
? Encoding
33
Source (Unicode) Target (UTF-8)
?? ??
??
???
?? ???
1??
???
2??
???
3??
???
4??
???
? ???
U+0000 ~ U+007F 7 127 0xxxxxxx 7
U+0080 ~ U+07FF 11 (2,047-127)=1920 110xxxxx 10xxxxxx (5+6)=11
U+0800 ~ U+FFFF 16 (65,535-2,047)=63488 1110xxxx 10xxxxxx 10xxxxxx (4+6+6)=16
U+10000 ~ U+10FFFF 20 1,114,111-65535=1,048,576 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx (3+6+6+6)=21
? Decoding
1. ?? ???? 0?? ????, ? ???? 1???? ? ???.(=ASCII)
2. ?? ???? 110?? ????, ????? 2???? ? ???.
3. ?? ???? 1110?? ????, ????? 3???? ? ???.
4. ?? ???? 11110?? ????, ????? 4???? ? ???.
5. ?? ???? 10?? ????, ? ???? ?? ??? ?? ???.
U+AC00
11101010 10110000 10000000
10101100 00000000
0xEA 0xB0 0x80
| ??? ?????? ?? ? ????
[??] UTF-8 / 16 / 32
34
U+1D11EU+0041 U+AC00
UTF-8
0x41
01000001
00000000:01000001
0x0041
UTF-16
UTF-32
0x00000041
00000000:00000000:
00000000:01000001
Unicode
0xEA 0xB0 0x80
11101010:10110000:10000000
10101100:00000000
0xAC00
00000000:00000000:
10101100:00000000
0x0000AC00
0xF0 0x9D 0x84 0x9E
11110000:10011101:
10000100:10011110
11011000:00110100:
11011101:00011110
0xD834 0xDD1E
00000000:00000001:
11010001:00011110
0x0001D11E
(1) (3) (4)
(2) (2) (4)
(4) (4) (4)
2014 ? B2EN Consulting All Rights Reserved
V. ??? ????
1. Oracle Database Globalization Support
2. ?? ?? ?? ????
3. ?? ???? ? ??????
| ??? ?????? ?? ? ????
Oracle Database Globalization Support
36
Oracle Database Globalization Support
Language Support
Territory Support
Date and Time Formats
Monetary and Numeric
Formats
Calendar Systems
Linguistic Sorting
Character Set Support
Character Semantics
Customization of Locale and
Calendar Data
Unicode Support
| ??? ?????? ?? ? ????
Language Support
37
System
(Menu/Messages)
Contents
Data
(Data Types)
DBMS Objects
(Object Names)
User Names
Table Names
Comments
¡­
CHAR
VARCHAR
NCHAR
NVARCHAR
Oracle Database
Language
Support
Character Set ??
| ??? ?????? ?? ? ????
??? ???? ??
38
SQL> select * from v$nls_parameters;
PARAMETER VALUE
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET AL32UTF8
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
19 rows selected.
| ??? ?????? ?? ? ????
?? ?? ?? ????
KO16KSC5601 KO16MSWIN949 UTF8 AL32UTF8 AL16UTF16
??
????
EUC-KR (KCS5601) CP949 UTF-8 UTF-8 UTF-16
?? 2,350? 11,172? 11,172?
11,172?
+???, ??? ?
11,172?
+???, ??? ?
Database
Character Set
O O O O X
National
Character Set
X X O X O
?? ??? ?? ??
Binary ?? ?
?? ??
?? ?? ???
?? ????
(Unicode3.0?? ??)
??? ??
?? ????
9.2 10.1 10.2 11.1 11.2 12.1
2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
3.1 3.23.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 6.3
200120001999
9.1
? ??? ?? ? ???? ?? ?? (AL32UTF8)
Oracle DBMS
version
Unicode
version
39
| ??? ?????? ?? ? ????
Character Length Semantic
SQL> desc all_col_comments
Name Null? Type
----------------------------- -------- --------------------
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
COLUMN_NAME NOT NULL VARCHAR2(30)
COMMENTS VARCHAR2(4000)
? DBMS Object Name Length
? Byte/Character Semantics
SQL> create table t1 (c1 varchar2(3000 byte));
Table created.
SQL> desc t1
Name Null? Type
----------------------- -------- ------------------
C1 VARCHAR2(3000)
SQL> create table t2 (c1 varchar2(3000 char));
Table created.
SQL> desc t2
Name Null? Type
----------------------- -------- ------------------
C1 VARCHAR2(3000 CHAR) MAX : 3,000 Character
or 4,000 Byte
MAX : 3,000 Byte
MAX : 30 Byte
40
| ??? ?????? ?? ? ????
?? ???? ? ??????
41
KO16KSC5601
KO16MSWIN949
AL32UTF8
US7ASCII
? ??? ????
? DB? Character set? ???? ?
? ????
? ???? ?? ??? ?? ??? character set? ?? ??? ??
? ?? ??? ?? ??(??) ??? ??
? Imp/exp? Logical Transformation
? Oracle Database Migration Assistant for Unicode
2014 ? B2EN Consulting All Rights Reserved
2014 ? B2EN Consulting All Rights Reserved

More Related Content

?????????? V1.0

  • 1. 2014 ? B2EN Consulting All Rights Reserved ???????????????? -- ??? ???? 2014. 5. 15. ?????? ???
  • 2. 2014 ? B2EN Consulting All Rights Reserved I. ???? II. ??? ?? (IT ??) III. ??? ??? ?? IV. ???? V. ??? ????
  • 3. 2014 ? B2EN Consulting All Rights Reserved I. ???? 1. ??? ??????? 2. ?? ????
  • 4. | ??? ?????? ?? ? ???? ??? ??????? 3
  • 5. | ??? ?????? ?? ? ???? ??? ??????? 4 ?? ? ??? ?? ? ?? ??? ? ???? ? ???? ? ?? ? ? ?? ? ?? ?? ?? ? ?? ? ?? ?? ? ?? ? ?? ?? ?? ? ??? ??? ? ?? ? ????
  • 6. 2014 ? B2EN Consulting All Rights Reserved II. ??? ?? (IT ??) 1. ?? ?? 2. ???? 3. ???? 4. ?? ??
  • 7. | ??? ?????? ?? ? ???? ??? ?? 6 ??? ?? ?3,500 ??? ?? ?100 ??: ??????
  • 8. | ??? ?????? ?? ? ???? ?? ?? ?? 7 57.35 16 11 1.14 2 1 6.15 8 5 16.49 25 4 5.43 27 55 0 10 20 30 40 50 60 70 80 90 100 Native Speakers by Population Internet User Language Internet Content English Chinese Spanish Arbic Portuguese Russian Japanese German Korean French Other 1) ?? : wikipedia.org 2) ?? : w3techs.com 1) 2) 2)
  • 9. | ??? ?????? ?? ? ???? ???? ¨C ??? LTR(Left to Right) ? ????? ??????, ???? ? ???? ?? 8 ???? ???? ??? ??? ???? ???? ???? ??. ??? ??? ???? ?? ??, ???? ?? ???? The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog
  • 10. | ??? ?????? ?? ? ???? ???? ¨C ??? RTL(Right to Left) ? ????? ??????, ???? ? ?? ????: Arabic, Persian, Hebrew 9
  • 11. | ??? ?????? ?? ? ???? ???? ¨C BiDi(bi-directional) ? ????? ??? ?? ?????? ?? ?????? ? Chinese ¡ù ??? ??? ???? ????? ??, ?? ?? ??? ???? ??? ????? ? 10
  • 12. | ??? ?????? ?? ? ???? ???? ¨C ??? ? ?? ??? ????, ?????? ? ?? ?, ?, ? 11
  • 13. | ??? ?????? ?? ? ???? ????? ??????? ??? ??! 12 "¡­??? ? ?? ??????? ???? ???? ???? ????. ?? ???? ???? ?? ?(??????)? ??? ?? ????¡­" Oracle said,
  • 14. | ??? ?????? ?? ? ???? ?? ??character set? ???encoding 13 SOS encoding decoding SOS character set
  • 15. | ??? ?????? ?? ? ???? ?? ?? ? ?? ?? character set ? ?? ????? ???? ??? ???? ?? ? ?? ??? character encoding ? ????? ?? ?? ??? ???? ?? ??? ? ?? ?? ??? ?? ??? ??? ??? ?? ???? ???, ?? ????? ??? ???? ???? ??? ?? ? ????? code page ? ????? ???? ?? IBM?? ???? ?? ?? ? ????, ???? superset/subset ? ? ?? ??? ???? ?, ? ?? ??? ??? ?? ?? ??? ??? ???? ? ?? ???? ? ??? ???? strict superset : ?? ? ?? ??? ? 14
  • 16. 2014 ? B2EN Consulting All Rights Reserved III. ??? ??? ?? 1. ??? 2. ????? 3. ??? ?? vs ??? ?? 4. EUC-KR 5. CP949
  • 17. | ??? ?????? ?? ? ???? ??? ASCII ? American Standard Code for Information Interchange ¨C ?? ?? ?? ?? ?? ? 7bit? ?? ???: 27(128)? ? ??(10), ???(52), ????(32), ????(33), ????(1)? ?? ? ??? KS X 1003? ASCII? ??? ?? 16 ?? ??? ?? ????
  • 18. | ??? ?????? ?? ? ???? ????? Extended ASCII ? 7bit ???? ?? 1bit? ??? ???? ?? (??? ? ?????) 17 CP437 ISO/IEC 8859-1 ? IBM PC? MS-DOS?? ?? ? ??, ??, ?? ?? ?? ?? ?? ? ??? ? ? line ?? ? ??? ?? ?? ??? ??? ? HTML ??? ?? ??? ? CP437?? ? ?? ?? ?? ?? ?? ? ???? CP1252? ??(ISO/IEC 8859-1 ? CP1252)
  • 19. | ??? ?????? ?? ? ???? ????? vs ????? ? ?? ??? ??? ??? 1985~1995?? ?? 18 ????? ????? ???? ? ??,??,?? ??? ??? ???? ???? ? ? ??? ? ??? ?? ?) ?+?+? ? ? ? ??,??,??? ?? ??? ??? ??? ??? ??? ?) ? ?? ? 2??? ??? ????(1??) + ??(5??) + ??(5??) + ?? (5??) : 1 xxxxx yyyyy zzzzz ? ?? ??? ??? ?? ? ????? ??? ?? ???? ?? 2,350? ?? ?? ?? ? ?? ?? ??? ??? ? ?? ??? ?? ??? ? ??? ? ? ? ??? ???? ?? ??. ?? ? ?? ??? 11,172?? ?? ??? ??? ??? ?? ??? ??? ?? ? ?? ? ??? ??? ???? ?? ?) 3??? ???, 2??? ??? 2??? ???? ?????, ?????,¡­ ? ?? ???? ?? ?? (?? ??? ?? ?? ??) ? ?? ?? ?? ?? ?? ?? ? ???? ???: ??? ??? ? ??, ??, ??, ? ? ???: ?? ??? ??? ? ?????? (?? ???) ?? X (?? ???) O (??? ??? : ISO-2022) ? KSC5601 ?? ? MS???95? ?? ? Unicode 2.0 ??? ???
  • 20. | ??? ?????? ?? ? ???? EUC-KR (Extended Unix Code - Korean) ? ???? ??? (1~2byte) ? 00-7F : 1byte? ????, KS X 1003(ASCII? ??)? ????. 80-FF : 2byte? ??? ????, KS X 1001(? KS C 5601)? ????. ? ??? ??? ??? ??? ?? 1 byte? ???? ?, 1 byte ???? 2 byte ???? ?? ?? ? KS C 5601 (ISO 2022? ??) ? 1byte, 2byte ?? A1~FE??? ???? ??(?? ??? ??? 94*94=8836?) ? ?? ???? ?? ?? 2,350?, ?? 4,888?, ???? 1,128?, ?? 470?? ?? 19 ASCII ?? ??, ???, ?? ????? ?? 80xx 90xx A0xx B0xx C0xx D0xx E0xx F0xx 00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0 1byte? ?? 2byte? ?? 00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0
  • 21. | ??? ?????? ?? ? ???? EUC-KR ¨C ?? ? KSC5601? ?? 2,350?? ?? ??? ?? ?? ??? ? 2,350?? ?? ???? ?? ???? ?? ???. ? ?? ??? ?? ?? ??? 20 ˜· ˜· ˜· ˜· D1E2 D5A5 E4C5 E8F9 ? ? ? ? ? ?? ?? ??? ?? ? ?? ??? ?? ?? ???? ??? ???? ?? ? ?? ??? ???? ??? ????? ??? ?? ??? ?? ??? ? ??????? ??? ??? ??? ??? ??? ?? ??? ?(X)??(O), ?(X)??(O), ?(X)??(O), ?(X)??(O), ?(X)??(O) ??? ?? ? ???? ??? ????. ? ??? ?? ? ???? ??? ñ„???.
  • 22. | ??? ?????? ?? ? ???? CP949 (?? ?????) ? Microsoft?? EUC-KR? ???? ?? ??? ? MS???95?? ?? ??? ? ??? ?? ? KSC5601? ??? ????? ?? 8,822?? ?? ? ?? ??? ???? ? ?? EUC-KR? ???? ?? ? ?? EUC-KR? CP949? ?? (???? ??????? EUC-KR ??) ? KSC5601 ? CP949 ASCII ?? ??, ???, ?? ????? ?? ?? ????? 80xx 90xx A0xx B0xx C0xx D0xx E0xx F0xx 00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0 00 40 80 F010 20 30 50 60 70 90 A0 B0 D0C0 E0 1byte? ?? 2byte? ?? 21
  • 23. | ??? ?????? ?? ? ???? CP949 (?? ?????) ¨C ?? ? ?? ???? ???? ? 1 byte / 2 byte? ??? ?? ?? ?? ? ?? EUC-KR??? 1~2 byte? ?? ??? ???? ???? ?? ?? ? ?? ? ????? ???? ??? ? ? ??? ?? ?? ???? ???? ?? ??? ??? ??? ?? ? ?? ? ?? ?? ?? ? ??? ?? 2,350?? ?? ??? 8,822???? ???? ?? ???? ?? ? ?? ??? ???? ? ?, ???? ?? ???? ?? ?? ? ? ? ? ? ? 8C63 94EE B0A1 B8B6 C164 C8FD ? ? ? ? ? ? ????? ???? ? ? ? ? ? ? ? ? ? ? BE C8 B3 E7 C7 CF BC BC BF E4 B9 DD B0 A9 BD C0 B4 CF B4 D9 ? ñö ¾¿ ? °¢ ¸­ ? ? Çó ? 22
  • 24. 2014 ? B2EN Consulting All Rights Reserved IV. ???? 1. ?? 2. ?? 3. ???? ?? 4. ??? ?? ?? 5. UTF
  • 25. | ??? ?????? ?? ? ???? ???? ?? ? ???? Unicode ? ??? ?? ??? ????? ???? ???? ?? ? ??? ??? ?? ?? ? ?? ??, ?? ???, ?? ?? ??????, ???? ??? ?? ???? ?? ?? ? ???? ?? ???? ??? ????? ???? ??? ? ? ??? ??? U+xxxx ??? ?? ? ???? ???? Unicode Consortium ? ???? ?? ?? ??? ???? ?? ??? ??(1989) ? ISO/IEC 10646 ? ??????ISO??? ??????? ??? ?? ??? ?? ??? ? ???? ????? ???? ????? ??? ??? ISO/IEC-10646? ?? ? ???? ??? ??? ?? ??? (????:??/????, ISO:????) 24
  • 26. | ??? ?????? ?? ? ???? ???? ?? 25 1.0 2.0 3.1 5.2 1991 1996 ? ???? ? ?? 2,350? ?? ? ???? ?? 4,306? ?? ? ISO/IEC 10646-1:1993 ?? 1.11993 ? ? 11,172?? ??? ?? (???, ???, ??, ?? ?? ?? ???? ??? ???? ??? ??) ? ??? ?? ??? ??? ?? ???? ??? ??? ??. ? ? ?? ??? ¡°?? ??? ??? ? ??? ? ??¡±? ??? ?? 7,161 34,233 38,950 2001 94,205 ? ?? ??? ?? ?? 2009 107,361 ? ???(??) ?? 6.32013 110,187 ? ?? ???? 3.01999 49,259 ? ??? ???? ?? 216(=65,536)?? ????? ??? ????? ??? ? ?? 4Byte ??? ?? ? ??? ??? ??, ??? ?? ??(Supplementary Planes)? ?? ?? ??????? ??
  • 27. | ??? ?????? ?? ? ???? ?????? ?? ? Unicode 1.0 ? ??? ??? ??? 3? ?? ?? ??? ???? ???? ????? ??? 11,172?? ?? ?????? ????? ????.(65,536? ? ?? ??? ??) ???? 1.0? KSC5601-1987??? ???? ?? ? Unicode 2.0 ? ???95/NT??? ?? ?? ??? ???? MS? ?? ? ???? 2.0?? ??? ??? ????? 11,172?? ?? ? ?? ???? ?? ?? ??? ???? ??? ? (??? ??¡¤??¡¤??¡¤?? ??? ??) ? ??? ?? ?? ? ??(19) * ??(21) * ??(28) = 11,172? ? ????? ??? KSC5601??? ???? ??? ??? ?? ??? ?? ?? ? ?? ??? ???? ??? ??? ??? ? ?? 26
  • 28. | ??? ?????? ?? ? ???? ??? ?? ?? CJK(Chinese-Japanese-Korean) Unified Ideographs ? ???? ?? ? ? ??? ?? ??? ????? ??: ???? ?? ?? ??? ?? ? ?? EUC-KR, ??:SHIFT-JIS, ??: GB18030 ? ?? ¨C ?? 4,000? ??, ??? ????? ???? 40,000? ?? ? ??? ????? ?? ???? ?? ???? ??? ?? ? EUC-KR? ??? ?? ?? ?? ???? ? ?? ?? ?? ??? ?? ??? ¨C ?,?,?,?(˜·) ? ???? ?? ? ??¡¤??¡¤??(¡¤???)? ?? ?? ??? ??? ? ??? ??? ??? ??? ??? ? ?? ????? ???? ???? ??? ?? ?? ?? ???? ?? ? ?? ???? ?? ??? 27 ??? ??? ??? ?? 27
  • 29. | ??? ?????? ?? ? ???? ?? ??? ?? Basic Multilingual Plane ? U+0000 ~ U+FFFF (? 65,536?) ? ???? ???? ??? ???? ?? ???? 11,172? ???? 256? ?????? 208? 28
  • 30. | ??? ?????? ?? ? ???? [??] ?? ??? ?? ? [AC] ?? 29
  • 31. | ??? ?????? ?? ? ???? ?? ?? Supplementary Plane ? U+10000 ~ U+10FFFF ? ??? ? ?? ? 65,536?? ??? ??? ? ?? ? ??????? ? 17?? ??? ????, Unicode 6.3 ???? 6?? ??? ???? BMP SMP 0000-FFFF 10000-1FFFF 20000-2FFFF Plane 0 Plane 1 Plane 2 100000-10FFFF Plane 16 F0000-FFFFF Plane 15 ??? ???? ?? ?????, ????, ????, ?????, ??, ??? ? SIP ?? ?/?/? ?? Private Use Area Planes ??? ?? 30
  • 32. | ??? ?????? ?? ? ???? [??] ???? ?? 31 U+1D11E U+0041 U+0414 U+AC00 U+13000 U+1F018 U+1F600 U+1F3E7 U+6A02 ˜·? ˜·? ˜·? ˜·? U+0031 ?? ??? ?? ?? ??? ?? U+6A02 U+F914 U+F95C U+F9BF ?? ?? ?? ??
  • 33. | ??? ?????? ?? ? ???? UTF ? UCS(Universal Character Set) Transformation Format 32 UTF-8 UTF-16 UTF-32 ?? ? ?? (1~4 byte) ? ?? (2, 4 byte) ? ?? (4 byte) ?? ? ASCII : 1 byte ? ?? : 2 byte ? ??? ?? : 3 byte ? ?? ?? ?? : 4 byte ? ?? ?? ??? : 2 byte ?? ?? ??? : 4 byte ? ?? ?? : 4 byte ?? ??? ? HTML, ???? ??? ??? ? ? MS Windows, Unix ? OS ? ? ?? ?? ?? ? ASCII? ??? ??? (?? ???? ?? ???) ? Western Script? ?? ? ????? ???? ???? ??? BMP? ?? ??? ?? 2byte??? ? ? ?? ? Unicode? ??? ?? ?? ?? ? ???? ??? ?? ? ???? ???? ??? ?? ??? ??? Byte Order Mark (=Endian)? ??? ? ?? ??? ?? ? ? ??? ??? ???? (4 byte? ??? ?) ? UTF-16?? ???
  • 34. | ??? ?????? ?? ? ???? UTF-8 Encoding/Decoding ? Encoding 33 Source (Unicode) Target (UTF-8) ?? ?? ?? ??? ?? ??? 1?? ??? 2?? ??? 3?? ??? 4?? ??? ? ??? U+0000 ~ U+007F 7 127 0xxxxxxx 7 U+0080 ~ U+07FF 11 (2,047-127)=1920 110xxxxx 10xxxxxx (5+6)=11 U+0800 ~ U+FFFF 16 (65,535-2,047)=63488 1110xxxx 10xxxxxx 10xxxxxx (4+6+6)=16 U+10000 ~ U+10FFFF 20 1,114,111-65535=1,048,576 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx (3+6+6+6)=21 ? Decoding 1. ?? ???? 0?? ????, ? ???? 1???? ? ???.(=ASCII) 2. ?? ???? 110?? ????, ????? 2???? ? ???. 3. ?? ???? 1110?? ????, ????? 3???? ? ???. 4. ?? ???? 11110?? ????, ????? 4???? ? ???. 5. ?? ???? 10?? ????, ? ???? ?? ??? ?? ???. U+AC00 11101010 10110000 10000000 10101100 00000000 0xEA 0xB0 0x80
  • 35. | ??? ?????? ?? ? ???? [??] UTF-8 / 16 / 32 34 U+1D11EU+0041 U+AC00 UTF-8 0x41 01000001 00000000:01000001 0x0041 UTF-16 UTF-32 0x00000041 00000000:00000000: 00000000:01000001 Unicode 0xEA 0xB0 0x80 11101010:10110000:10000000 10101100:00000000 0xAC00 00000000:00000000: 10101100:00000000 0x0000AC00 0xF0 0x9D 0x84 0x9E 11110000:10011101: 10000100:10011110 11011000:00110100: 11011101:00011110 0xD834 0xDD1E 00000000:00000001: 11010001:00011110 0x0001D11E (1) (3) (4) (2) (2) (4) (4) (4) (4)
  • 36. 2014 ? B2EN Consulting All Rights Reserved V. ??? ???? 1. Oracle Database Globalization Support 2. ?? ?? ?? ???? 3. ?? ???? ? ??????
  • 37. | ??? ?????? ?? ? ???? Oracle Database Globalization Support 36 Oracle Database Globalization Support Language Support Territory Support Date and Time Formats Monetary and Numeric Formats Calendar Systems Linguistic Sorting Character Set Support Character Semantics Customization of Locale and Calendar Data Unicode Support
  • 38. | ??? ?????? ?? ? ???? Language Support 37 System (Menu/Messages) Contents Data (Data Types) DBMS Objects (Object Names) User Names Table Names Comments ¡­ CHAR VARCHAR NCHAR NVARCHAR Oracle Database Language Support Character Set ??
  • 39. | ??? ?????? ?? ? ???? ??? ???? ?? 38 SQL> select * from v$nls_parameters; PARAMETER VALUE ------------------------------ ------------------------------ NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_CHARACTERSET AL32UTF8 NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 19 rows selected.
  • 40. | ??? ?????? ?? ? ???? ?? ?? ?? ???? KO16KSC5601 KO16MSWIN949 UTF8 AL32UTF8 AL16UTF16 ?? ???? EUC-KR (KCS5601) CP949 UTF-8 UTF-8 UTF-16 ?? 2,350? 11,172? 11,172? 11,172? +???, ??? ? 11,172? +???, ??? ? Database Character Set O O O O X National Character Set X X O X O ?? ??? ?? ?? Binary ?? ? ?? ?? ?? ?? ??? ?? ???? (Unicode3.0?? ??) ??? ?? ?? ???? 9.2 10.1 10.2 11.1 11.2 12.1 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 3.1 3.23.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 6.3 200120001999 9.1 ? ??? ?? ? ???? ?? ?? (AL32UTF8) Oracle DBMS version Unicode version 39
  • 41. | ??? ?????? ?? ? ???? Character Length Semantic SQL> desc all_col_comments Name Null? Type ----------------------------- -------- -------------------- OWNER NOT NULL VARCHAR2(30) TABLE_NAME NOT NULL VARCHAR2(30) COLUMN_NAME NOT NULL VARCHAR2(30) COMMENTS VARCHAR2(4000) ? DBMS Object Name Length ? Byte/Character Semantics SQL> create table t1 (c1 varchar2(3000 byte)); Table created. SQL> desc t1 Name Null? Type ----------------------- -------- ------------------ C1 VARCHAR2(3000) SQL> create table t2 (c1 varchar2(3000 char)); Table created. SQL> desc t2 Name Null? Type ----------------------- -------- ------------------ C1 VARCHAR2(3000 CHAR) MAX : 3,000 Character or 4,000 Byte MAX : 3,000 Byte MAX : 30 Byte 40
  • 42. | ??? ?????? ?? ? ???? ?? ???? ? ?????? 41 KO16KSC5601 KO16MSWIN949 AL32UTF8 US7ASCII ? ??? ???? ? DB? Character set? ???? ? ? ???? ? ???? ?? ??? ?? ??? character set? ?? ??? ?? ? ?? ??? ?? ??(??) ??? ?? ? Imp/exp? Logical Transformation ? Oracle Database Migration Assistant for Unicode
  • 43. 2014 ? B2EN Consulting All Rights Reserved
  • 44. 2014 ? B2EN Consulting All Rights Reserved