ȨÀ¸·Î | ¹«·áȸ¿ø°¡ÀÔ | ¾ÆÀ̵ð/ºñ¹øÃ£±â
ÃßõÀ½¾Ç¹æ¼Û
Python 2.x ÇÑ±Û ÀÎÄÚµù °ü·Ã Á¤¸®
6³â Àü
°³¿ä

ÆÄÀ̽ãÀº ¾ç³ðÀÌ ¸¸µç ¾ð¾î¶ó¼­ ÇѱÛÀ» ¾µ¶§ °ñÄ¡¾ÆÇÁ´Ù (¾Æ´Ï, Çѱ۸¸ °ñÄ¡¾ÆÇÂ°Ô Áö¿ÁÀÇ ¾ð¾î CJK(chiness, japanese, korean)¸¦ Æ÷ÇÔÇÑ ¸ÖƼ¹ÙÀÌÆ® ¾ð¾î´Â ÀüºÎ ±×·¸°ÚÁö). ¿µ¾î¸¸ »ç¿ëÇÏ¸é º°·Î ½Å°æ¾µ°Ô ¾øÁö¸¸ ÇѱÛÀº euc-kr, utf-8ÀÌ °øÁ¸ÇÏÁö ¾Ê´Â°¡?

±×³É °ñÄ¡¾ÆÇ°͵µ ¾Æ´Ï°í unicode¿Í Á¶ÇյǼ­µµ °ñÄ¡¾ÆÇÁ´Ù. unicode°ü·Ã ºÎºÐÀÇ °æ¿ì, ÃÖÃʺÎÅÍ Áö¿øÇÑ°Ô ¾Æ´Ï¶ó ÆÄÀ̽ã 2.4(¿³´ø°¡?)ºÎÅÍ Áö¿øÀÌ Ãß°¡µÇ¾î¼­ ¹®ÀÚ¿­À» ÀǹÌÇϴ ŸÀÔÀÌ str°ú unicode°¡ Á¸ÀçÇØ¼­ ´õ °ñÄ¡¾ÆÇÁ´Ù. ÀÌ·± ¹®Á¦´Â ÆÄÀ̽ã 3.X·Î °¡¸é °ÅÀÇ ¾ø¾îÁöÁö¸¸(±× µ¿³×´Â unicode·Î ÅëÀÏ됏´Ù°íÇÏ´õ¶ó.) ¿ÜºÎ ¶óÀ̺귯¸®¶óµç°¡ ±âŸ »çÁ¤»ó ÆÄÀ̽ã 2.x¸¦ ½á¾ßµÇ´Â ȯ°æµµ ¾ÆÁ÷ ¸¹ÀÌ ³²¾ÆÀ־ ³»°¡ »ðÁúÇß´ø°É Çѹø Á¤¸®ÇغôÙ.

python script¿¡ ÇÑ±Û »ç¿ëÇϱâ

print 'ÇѱÛ'
python ½ºÅ©¸³Æ® ÆÄÀÏ¿¡ À§ÀÇ ³»¿ëÀ» Àû°í ½ÇÇàÇØº¸ÀÚ. ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ³ª¿Â´Ù.

SyntaxError: Non-ASCII character '\xc7' in file euckr-error.py on line 1, but no
encoding declared; see http://www.python.org/peps/pep-0263.html for details
ÆÄÀ̽ãÀÇ ±âº» ÀÎÄÚµùÀº asciiÀÌ´Ù. ½ºÅ©¸³Æ® ÆÄÀÏÀÌ ascii ÀÎÄÚµùÀϰŶó°í °¡Á¤Çϰí Àо ÆÄ½ÌÇÒ¶ó°í Çϴµ¥ ascii·Î ÇØ¼®ÀÌ ºÒ°¡´ÉÇÑ ÇѱÛÀ̶ó´Â ´Ü¾î°¡ Á¸ÀçÇϱâ 떄¹®¿¡ SyntaxError(¹®¹ý¿¡·¯)°¡ ¹ß»ýÇÑ °ÍÀÌ´Ù. À̸¦ ÇØ°áÇϱâ À§Çؼ­´Â ¾Æ·¡¿Í °°ÀÌ ½ºÅ©¸³Æ® ÆÄÀÏ Ã¹ÁÙ¿¡ ÆÄÀÏÀÇ ÀÎÄÚµùÀ» ¸í½ÃÇØÁÖ¸é µÈ´Ù.

#-*- coding: utf-8 -*-
print 'ÇѱÛ'
#-*- coding: euc-kr -*-
print 'ÇѱÛ'
str - unicode º¯È¯

s = 'english'
print str(unicode(s))
À§¿Í °°ÀÌ ¿µ¾î ¹®ÀÚ¿­À» Unicode·Î ¹Ù꿧´Ù°¡ str·Î ¹Ù²Ù´Â Äڵ带 ½ÇÇàÇϸé Àß µ¹¾Æ°£´Ù. ±×·¯¸é ÇѱÛÀ» Áý¾î³Ö°í µ¹·Áº¸ÀÚ.

#-*- coding: utf-8 -*-
s = 'ÇѱÛ'
print str(unicode(s))
    print str(unicode(s))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc7 in position 0: ordinal
not in range(128)
µÚÁø´Ù. ÈÊ. ±×·¡¾ß Çѱ۴äÁö. ¿¡·¯¸¦ º¸¸é UnicodeDecodeError(À¯´ÏÄÚµå ÇØ¼® ¿¡·¯)°¡ ¹ß»ýÇÑ´Ù. python script¿¡ ÇÑ±Û »ç¿ëÇϱâ¿Í´Â ´Ù¸¥ ¿¡·¯´Ù. À̹ø¿¡ ¹ß»ýÇÑ ¿¡·¯¸¦ ÇØ¼®ÇÏÀÚ¸é 'ÇѱÛ'À» ascii¶ó°í °£ÁÖÇϰí À¯´ÏÄÚµå·Î º¯È¯ÇÏ·Á°í ½ÃµµÇßÀ¸³ª ÇØ¼®ÀÌ ¾ÈµÇ¼­ ¹ß»ýÇÑ ¿¡·¯ÀÌ´Ù. À̸¦ ÇØ°áÇϱâ À§Çؼ­´Â ¾Æ·¡ÀÇ ¼Ò½º¿Í °°ÀÌ ¸í½ÃÀûÀ¸·Î ¹®ÀÚ¿­À» utf-8·Î °£ÁÖÇϰí unicode·Î º¯È¯Çϵµ·Ï ÇÒ¼öÀÖ´Ù.

#-*- coding: utf-8 -*-
s = 'ÇѱÛ'
print s.decode('utf-8').encode('utf-8')
ÇÏÁö¸¸ À§ÀÇ ¼Ò½º´Â ¸¸´ÉÀÌ ¾Æ´Ï´Ù. ¿ÜºÎ ¶óÀ̺귯¸®¸¦ ¸¸µç »ç¶÷ÀÌ ¹®ÀÚ¿­À» À¯´ÏÄÚµå·Î, À¯´ÏÄڵ带 ¹®ÀÚ¿­·Î º¯È¯ÇÒ¶§ ÀÎÄÚµùÀ» ¸í½ÃÀûÀ¸·Î ÀûÁö ¾Ê¾Ñ´Ù°í °¡Á¤ÇÏÀÚ. ¾ç³ðÀÌ ±×·±ÄÚµùÀ» ÇßÀ¸¸é ÀÚ½ÅÀÇ È¯°æ¿¡¼­´Â ¹®Á¦¾øÀÌ Àß ÀÛµ¿ÇÑ´Ù. (¾Æ·¡Äڵ尡 ¿¹½Ã)

foo = unicode(s)
...
bar = str(foo)
ÇÏÁö¸¸, ¾ç³ðÀÌ ¸¸µç ¶óÀ̺귯¸®¸¦ ¿ì¸®°¡ °¡Á®´Ù »ç¿ëÇϴµ¥ ÇÔ¼öÀÇ ÀÎÀÚ·Î ÇѱÛÀ» »ç¿ëÇÏ°Ô µÈ´Ù¸é ¾î¶³±î? À§¿¡¼­ À̾߱âÇѰͰú °°ÀÌ UnicodeDecodeError°¡ ¹ß»ýÇÏ°í ¸ÁÇÑ´Ù. À̸¦ ÇØ°áÇÏ°Ù´Ù°í ¶óÀ̺귯¸®¿¡¼­ À¯´ÏÄÚµå °ü·Ã ÀÎÄÚµù/µðÄÚµùÇÏ´Â ÁöÁ¡¿¡ ÀüºÎ ÀÎÄÚµùÀ» ¸í½ÃÀûÀ¸·Î Àû¾îÁÖ´Â°Ç »ç¶÷ÀÌ ÇÒ ÁþÀÌ ¾Æ´Ï´Ù. ¸¸¾à Unicode·Î ÀÎÄÚµù/µðÄÚµùÇÒ¶§ »ç¿ëÇÒ ±âº» ÀÎÄÚµùÀ» ascii´ë½Å utf-8·Î ¹Ù²ãÁÖ¸é ½±°Ô ÇØ°áÇÒ¼ö ÀÖÁö ¾ÊÀ»±î? sys.setdefaultencoding°¡ ¹Ù·Î ÀÌ·² ¶§ »ç¿ëÇÏ´Â ÇÔ¼öÀÌ´Ù.

#-*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

s = 'ÇѱÛ'
print str(unicode(s))
À§¿Í °°ÀÌ ±âº» ÀÎÄÚµùÀ» ascii´ë½Å utf-8·Î ¹Ù²ãÁÖ´Â ³»¿ëÀ» ½ºÅ©¸³Æ® ÆÄÀÏÀ» ÃÖÃÊ ÁøÀԺο¡ Áý¾î³ÖÀ¸¸é µÈ´Ù. #-*- coding: utf-8 -*-°ú ´Þ¸® Àú°ÍÀº ÇÔ¼ö¶ó¼­ È£ÃâµÈ ÀÌÈÄ, °è¼Ó À¯ÁöµÈ´Ù. ÀûÀýÇѰ÷¿¡ Çѹø¸¸ ³Ö¾îÁÖ¸é µÈ´Ù. Âü°í·Î reload(sys)¸¦ ÇÏÁö ¾ÊÀ¸¸é sys.setdefaultencodingÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
ÃßõÃßõ : 287 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
3,030
 Á¦ÀÌÄõ¸® ±âº» ¸í·É¾î
3,029
 À¥ÆäÀÌÁö °¡·Î ¸ðµå¼¼·Î ¸ðµå ÀνÄÇϱâ
3,028
 ¸ð¹ÙÀÏ À¥ È­¸é °­Á¦ ȸÀü(°¡·Î¸ðµå °íÁ¤)
3,027
 [HTML5]¿¡¼­ frameset ´ëü ¹æ¹ý°ú iframe ¼Ó¼º
3,026
 HTML <Audio> »ç¿ë¹ý
3,025
 À©µµ¿ì10 ½Ã½ºÅÛÆÄÀÏ ¼Õ»ó (Ãʰ£´Ü ¿À·ù º¹±¸¹æ¹ý!!)
3,024
 PHP ÆÄÀÏ Á¸Àç ¿©ºÎ ÆÄ¾ÇÇϱâ(·ÎÄà ÆÄÀÏ Á¸Àç ¹× ¿ø°ÝÁö ÆÄÀÏ Á¸Àç)
3,023
 [CSS] ¹Ú½º ¼¼·Î °¡¿îµ¥ Áß¾Ó Á¤·Ä 6°¡Áö
3,022
 CSS Layout ¼öÆò & ¼öÁ÷ Á¤·Ä
3,021
 ¿©·¯ µµ¸ÞÀÎµé °£ ÄíŰ °øÀ¯Çϱâ
3,020
 ÅÂ±× »çÀÌ¿¡ ÀÖ´Â ÅØ½ºÆ®¸¦ ÃßÃâ
3,019
 [JQuery] textbox focus on offÀ϶§ ¼ýÀÚ ÄÞ¸¶ º¸¿©ÁÖ±â
3,018
 ÄíŰ »ý¼º,°¡Á®¿À±â,»èÁ¦
3,017
 »ç¿ëÀÚ ÇÔ¼ö ¸ðÀ½
3,016
 ¸¶¿ì½º,Űº¸µå Á¦ÇÑ ( ¿À¸¥ÂÊŬ¸¯,µå·¡±×,¿µ¿ª¼±Åõî..)
3,015
 [HTML5] <video> - DOMÀ¸·Î Á¦¾îÇϱâ
3,014
 HTML5 video ű׿¡¼­ ¿µ»ó Á¿ì¹ÝÀü
3,013
 PHP - ƯÁ¤ ÅÂ±× ¹× ¹®ÀÚ¿­ ÃßÃâ, Á¦°Å
3,012
 [PHP] define°ú definedÀÇ Â÷ÀÌ
3,011
 ¿ìŬ¸¯ ¿Ïº®Â÷´Ü ½ºÅ©¸³Æ®
3,010
 iframe ³ôÀÌ 100% ¸ÂÃß±â
3,009
 curl ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ HTTP REFERER º¯°æ
3,008
 À©µµ¿ì10 ½Ã½ºÅÛ ÆÄÀÏ ¹× Dism °Ë»ç
3,007
 ÅؽºÆ® ÁٹٲÞ, ±ÛÀÚÀÚ¸£±â CSS
3,006
 jQuery Mobile¿¡¼­ À¯¿ëÇÑ ÄÚµå 10°¡Áö.
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§
Copyright (C) musictrot All rights reserved.