2017.03.29 / 13:21
¹®Àڼ°ú ÀÎÄÚµùÀÇ Á¤ÀÇ
½ºÄÚ´Ù
Ãßõ ¼ö 259
¹®Àڼ°ú ÀÎÄÚµùÀÇ Á¤ÀÇ
- ¹®Àڼ (charset, Character Set)
- ÇϳªÀÇ ¾ð¾î±Ç¿¡¼ »ç¿ëÇÏ´Â ¾ð¾î¸¦ Ç¥ÇöÇϱâ À§ÇÑ ¸ðµç ¹®ÀÚ(È°ÀÚ)ÀÇ ¸ðÀÓÀ» ¹®ÀÚ¼Â(charater set)À̶ó°í ÇÑ´Ù. ´Ù½Ã ¸»ÇÏ¸é ¿ì¸®°¡ ¾ê±âÇÏ´Â ¾ð¾î¸¦ Ã¥À¸·Î ÃâÆÇÇÒ ¶§ ÇÊ¿äÇÑ ¹®ÀÚ(È°ÀÚ)¸¦ ¸ðµÎ ¸ðÀº °ÍÀ̶ó°í »ý°¢ÇÏ¸é µÈ´Ù. Ãß°¡ÀûÀ¸·Î ºÎÈ£¿Í °ø¹é µî°ú °°Àº Ư¼ö ¹®ÀÚµµ ¹®Àڼ¿¡ Æ÷ÇԵȴÙ.
- ¿µ¾îÀÇ °æ¿ì ¾ËÆĺª ´ë¼Ò¹®ÀÚ¿Í Æ¯¼ö ¹®ÀÚ µîÀ¸·Î °£´ÜÇÏ°Ô ¹®ÀÚ¼ÂÀ» ±¸¼ºÇÒ ¼ö ÀÖÁö¸¸ ÇѱÛÀÇ °æ¿ì ÃâÆÇ¿¡¼ °¡,³ª,´Ù µîÀ¸·Î ÃâÆÇÇÔÀ¸·Î ÈξÀ ´Ù¾çÇÑ ¹®ÀÚ¼ÂÀ» °¡Áö°í, ¶ÇÇÑ ÇÑÀÚ¸¦ º´ÇàÇؼ »ç¿ëÇÔÀ¸·Î ¹®ÀÚ¼ÂÀÇ ¹üÀ§´Â ´õ¿í ³Ð¾îÁø´Ù.
- Ãß»óÀûÀÎ ±ÛÀÚ ¼ÂÀº ¿©·¯ °³ÀÇ ÀÎÄÚµùÀ» °¡Áú ¼ö ÀÖ´Ù.
- MIME ¹®ÀÚ¼ÂÀº IANA¿¡¼ Á¤ÀÇÇϸç ÀÎÅÍ³Ý ¹× XML ÆÄÀÏ¿¡¼ »ç¿ëÇÑ´Ù.
- ÀÎÄÚµù (encoding)
- ÀÎÄÚµùÀº ¹®ÀÚ¼ÂÀ» ÄÄÇ»ÅÍ°¡ ÀÌÇØÇÒ ¼ö ÀÖ´Â ¹ÙÀÌÆ®¿Í ¸ÅÇÎÇÏ´Â ±ÔÄ¢ÀÌ´Ù. ¿¹¸¦ µé¸é ASCII Code¿¡¼ A,B,C µîÀº ¹®ÀÚ¼ÂÀÌ°í A´Â ÄÚµå 65, B´Â ÄÚµå 66 µî ¹ÙÀÌÆ® ¼ø¼¿Í ¸ÅÇÎÇÑ °ÍÀÌ ÀÎÄÚµùÀÌ´Ù. µû¶ó¼ ¹®ÀÚ¼ÂÀ» ¾î¶»°Ô ¸ÅÇÎÇÏ´À³Ä¿¡ µû¶ó ÇϳªÀÇ ¹®ÀÚ¼ÂÀÌ ´Ù¾çÇÑ ÀÎÄÚµùÀ» °¡Áú ¼ö ÀÖ´Ù.
- Ãß»óÀûÀÎ ¹®ÀÚ¼ÂÀ» ±¸Ã¼ÀûÀÎ bit-streamÀ¸·Î Ç¥±âÇÏ´Â ¹æ¹ý
- ¿©·¯°¡Áö ¹®ÀÚ¼ÂÀ» µ¿½Ã¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù.
- ´ëºÎºÐÀÇ ÀÎÄÚµù¿¡¼´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù.
- ´ëÇѹα¹ ¹®ÀÚ¼Â(charater set)¿¡¼ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ´Â ÀÎÄÚµùÀº "UTF-8", "KSC5601", "ISO-8859-1" ÀÌ´Ù.
- ¹®ÀÚ¼Â(ÀÎÄÚµù)ÀÇ ¿¹
-
- ÇÑ±Û : 8bit KSC5601 (8bit EUC-KR, 7bit ISO-2022-KR, ISO-2022-Int)
- ¿µ¹® : KSC5636, US-ASCII (µÑ °£ÀÇ Â÷ÀÌ´Â ÈÆä ´ÜÀ§ »Ó)
- ÇѱÛ+¿µ¹® : KSC5861 (EUC-KR), KSC5636 + KSC5601¸¦ ¸ðµÎ Æ÷ÇÔÇÑ´Ù.
- À¯´ÏÄÚµå : 4byte Unicode < ISO-10646 UCS (ISO-8859-1, UTF-8, UTF-16)
¹®Àڼ°ú ÀÎÄÚµùÀº µ¿ÀÏÇÑ ¸íĪÀ» °¡Áú ¼ö ÀÖ¾î ¼·Î È¥¿ëÇÏ¿© »ç¿ëµÇ´Â °æ¿ì°¡ ¸¹´Ù.
EUC-KRÀº ¿ø·¡ À¯´Ð½º¿ë Ç¥ÁØÀ̾ú´Âµ¥ ÀÎÅͳÝÀ¸·Î È®ÀåµÇ¾î »ç¿ëµÈ´Ù.
KSC5601Àº ÀÎÅͳݿ¡¼ ¿øÈ°ÇÑ ÇѱÛ(¿Ï¼ºÇü) »ç¿ëÀ» À§ÇÏ¿© Á¤ÀÇµÈ Ç¥ÁØÀÌ´Ù.
EUC (Extended UNIX Code), UTF (UCS Transformation format)
±âº» ÀÎÄÚµù
- Windows : ½Ã½ºÅÛ ¾ð¾î¿Í °ü·ÃµÈ ÄÚµå ÆäÀÌÁö¸¦ µû¸§
- ¿µ¹® Windows´Â CP1252 ÀÎÄÚµùÀ» »ç¿ë
- ÇÑ±Û Windows´Â MS949 ÀÎÄÚµùÀ» »ç¿ë
- Unix : LANG ȯ°æ º¯¼ö·Î ÁöÁ¤µÈ ·ÎÄÉÀÏ¿¡ ÇØ´çÇÏ´Â ÀÎÄÚµù
- Solaris´Â LANG ȯ°æ º¯¼ö°¡ ko, ko_KRÀÏ °æ¿ì EUC-KR ÀÎÄÚµùÀ» »ç¿ë
- HP´Â LANG ȯ°æ º¯¼ö°¡ ko_KR, ko_KR.eucKRÀÏ °æ¿ì EUC-KR ÀÎÄÚµùÀ» »ç¿ë
- Unix¿¡¼ locale -a ¸í·ÉÀ» »ç¿ëÇÏ¿© LANG ȯ°æ º¯¼ö¿¡ ÁöÁ¤ °¡´ÉÇÑ ¹®ÀÚ¼ÂÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
- HTML : ISO-8859-1¿Í ISO-10646
- XML : UTF-8
- À¥ ºê¶ó¿ìÁ® : ³»ºÎÀûÀ¸·Î ¸ðµÎ À¯´ÏÄÚµå·Î 󸮸¦ ÇÑ´Ù.
- HTTP/1.0 : ISO-8859-1
- HTTP (URL,URI) : US-ASCII, %hexadecimal_code, JavaScript escape() ÇÔ¼ö »ç¿ë
- Java : À¯´ÏÄÚµå 2.0
- Á÷·ÄÈµÈ Java Class : UTF-8
- J2EE : ISO-8859-1
- Oracle : UTF-8 (AL32UTF8), Çѱ¹¿¡¼´Â KSC5601 (KO16KSC5601)
´Ù¾çÇÑ È¯°æ¿¡¼ ÀÎÄÚµù ¼³Á¤
À¥ ºê¶ó¿ìÁ® ¼³Á¤
- "µµ±¸ -> ÀÎÅÍ³Ý ¿É¼Ç -> ¾ð¾î" ¸Þ´º¸¦ ¼±ÅÃÇÑ´Ù.
- ¿µ¾î[en]¿Í Çѱ¹¾î[ko]¸¦ Ãß°¡ÇÏ°í ¿øÇÏ´Â ¾ð¾î¸¦ °¡Àå »ó´Ü¿¡ À§Ä¡ÇÑ´Ù.
JVM ¼³Á¤
- ÀϹÝÀûÀ¸·Î LANG ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇØ ÁÖ¸é ÀÚµ¿À¸·Î ¼³Á¤ÀÌ µÈ´Ù.
locale -a Solaria unix ¸í·É¾î·Î Áö¿ø °¡´ÉÇÑ encodingÀ» È®ÀÎÇÑ´Ù.
env LANG ko csh¿¡¼ EncodingÀ» ¼³Á¤ÇÑ´Ù. (KSC5601, EUC-KR)
LANG=ko ksh¿¡¼ EncodingÀ» ¼³Á¤ÇÑ´Ù. (KSC5601, EUC-KR)
- JVM ¿É¼Ç ¼³Á¤ (UTF-8, ISO-8859-1, KSC5601)
-Dfile.encoding=8859_1 Çʼö Ç׸ñ
-Dfile.client.encoding=8859_1
-Dclient.encoding.override=8859_1 JVM ¹öÀü¿¡ µû¶ó (»ç¿ë¾ÈÇÔ)
- JSP¸¦ »ç¿ëÇÏ¿© JVM ¿É¼Ç È®ÀÎ (encoding.jsp)
file.encoding = <%= System.getProperty("file.encoding") %><br>
file.client.encoding = <%= System.getProperty("file.client.encoding") %><br>
client.encoding.override = <%= System.getProperty("client.encoding.override") %><br>
HTML ¼³Á¤
HTML ÆÄÀÏÀ» UTF-8·Î ¸¸µé¾î ÀúÀåÇÑ´Ù.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
XML ¼³Á¤
XML ÆÄÀÏÀ» UTF-8·Î ¸¸µé¾î ÀúÀåÇÑ´Ù.
<?xml version="1.0" encoding="UTF-8" ?>
JSP ¼³Á¤
JSP ÆÄÀÏÀ» UTF-8·Î ¸¸µé¾î ÀúÀåÇÑ´Ù.
<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html;charset=UTF-8" %>
Servlet ¼³Á¤
HTTP ¿äûÀÇ ÀÎÄÚµù ÁöÁ¤
request.setCharacterEncoding("UTF-8");
HTTP ÀÀ´äÀÇ ÀÎÄÚµù ÁöÁ¤
response.setContentType("text/html; charset=UTF-8");
web.xml ¼³Á¤
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>
Default Oracle Database ¹®ÀÚ¼Â
- Default Oracle Database ¹®Àڼ : UTF-8 (AL32UTF8), Çѱ¹¿¡¼´Â KSC5601 (KO16KSC5601)
-
- AL32UTF8, KO16KSC5601 (KSC5601), WE8ISO8859P1 (8859_1)
- Default Oracle Database ¹®Àڼ ȮÀÎ ¹æ¹ý
sqlplus system/manager
select parameter || ' : ' || value parameter_value
from NLS_DATABASE_PARAMETERS
where parameter = 'NLS_CHARACTERSET'
or parameter = 'NLS_NCHAR_CHARACTERSET';
select name || ' : ' || substr(value$, 1, 40) parameter_value
from sys.props$
where name = 'NLS_CHARACTERSET';
select parameter || ' : ' || value parameter_value
from NLS_INSTANCE_PARAMETERS, V$NLS_PARAMETERS, NLS_SESSION_PARAMETERS;
- Oracle Database ¹®Àڼ º¯°æ ¹æ¹ý
- ȯ°æ º¯¼ö ¶Ç´Â %ORACLE_HOME%/dbs/init[SID].ora À» ¼³Á¤ÇÑ´Ù.
NLS_LANG='American_America.Ko16ksc5601'
ORA_NLS33='$ORACLE_HOME/ocommon/nls/admin/data'
NLS_DATE_FORMAT='YYYY-MM-DD'
- DriverManager¿¡¼ ¹®Àڼ ¼³Á¤ ¹æ¹ý
java.util.Properties props = new java.util.Properties();
props.put("charSet", "KSC5601" );
DriverManager.getConnection(dbUrl, props);