파이썬2 인코딩과 유니코드(발표용)

  • 2,498 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • @undefined 참고가 되셨다니 기쁩니다.
    Are you sure you want to
    Your message goes here
  • 현재 개발중인 프로그램 작성에 큰 도움이 되었습니다.
    감사합니다.
    Are you sure you want to
    Your message goes here
  • 세미나에는 못 갔지만... 발표자료 15p에 언급하신 codecs에 버그가 있습니다. linux에서는 잘 동작하는데, windows 상에서 python 2.7.x 버전에서 버그가 있어서, 아래 링크와 깉이 수동으로 처리해줘야 합니다. ㅠㅜ; 참고하세요.. .
    http://stackoverflow.com/questions/5941988/print-to-utf-8-encoded-file-with-platform-dependent-newlines
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
2,498
On Slideshare
0
From Embeds
0
Number of Embeds
10

Actions

Shares
Downloads
21
Comments
3
Likes
8

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 파이썬 한국 페이스북 그룹 2013년 3월 세미나 이성주
  • 2.  유니코드에 대한 잦은 오해 또는 인상 ◦ UTF-8은 유니코드다 (땡!) ◦ 유니코드는 16 비트로 저장된다. (땡!) ◦ 파일에서 인코딩 정보를 알아낼 수 있다. (거의 땡!) ◦ 유니코드는 … 짜증난다 (딩동댕?) 이성주 (c) 2013 2
  • 3. 반가움 : )표현은 언어별 (또는 종별)로 다르다 안녕하세요 Hello 你好 Bonjour … 왈? 이성주 (c) 2013 3
  • 4.  수학 개념은 자연어 독립적 ◦ 1000 이하의 3과 5의 배수의 합을 구하라. ◦ Find the sum of all the multiples of 3 or 5 below 1000. 그러나 개념을 전달할 때는 서술하는 언어를 특정 해야 한다. 이성주 (c) 2013 4
  • 5.  유니코드 ~ 반가운 감정; 수학적 개념 : 문자 각각에 해당하는 코드 포인트 인코딩 ~ 언어별 인사말; 개념을 서술한 언어 : 특정한 규칙에 따라 문자를 비트로 표현 이성주 (c) 2013 5
  • 6. ASCII UTF-8U+ EUC-KR 이성주 (c) 2013 6
  • 7. UnicodeEncodeError:ascii codec cantencode character파이썬 2의 기본 인코딩,ASCII 이성주 (c) 2013 7
  • 8. <type basestring> | +--<type str> | +--<type unicode> 이성주 (c) 2013 8
  • 9. u.encode(encoding) s.decode(encoding)<type ‘unicode’> to <type <type ‘str’> to <type‘str’> ‘unicode’> ‘특정한 인코딩으로 ‘str’을 읽어‘유니코드 형식의 문자열을 지정 들여 유니코드 형식으로 변환된 인코딩을 사용하여 str 형식으로 변환’U+xxxx 인코딩 디코딩 이성주 (c) 2013 9
  • 10. 0 127 ASCII 이성주 (c) 2013 10
  • 11. sys.setdefaultencoding(‘utf-8’)  다른 파이썬 환경에서는 동작 하지 않는다  여러 가지 안 되는 이유를 죽 나열해야 하니 결론은 …‘아니오’ 이성주 (c) 2013 11
  • 12. 1. 초반 디코드2. 유니코드로 통일3. 막판 인코딩 이성주 (c) 2013 12
  • 13.  가능한 빨리 <type ‘unicode’>로 변환def to_unicode(obj, encoding=‘utf-8): if isinstance(obj, basestring): if not isinstance(obj, unicode): obj = unicode(obj, encoding) return obj 이성주 (c) 2013 13
  • 14.  파일로 저장하거나 네트워크로 전송하기 직전에 <type ‘str’>으로 변환>>> f = open(‘text.txt’, ‘w’)>>> f.write(uni_str.encode(‘utf-8’))>>> f.close() 이성주 (c) 2013 14
  • 15.  codes.open()으로 인코딩 지정>>> import codecs>>> f = codecs.open(‘text.txt’, ‘w’,encoding=‘utf-8’)…>>> f.write(uni_str)>>> f.close() 이성주 (c) 2013 15
  • 16.  ASCII 인코딩만 사용해도 아무 문제가 없는 사람들 이 만든 패키지나 라이브러리들에서는 ◦ 유니코드를 지원 안 하는 경우도 많다 ◦ 유니코드와 인코딩을 완전 잘못 이해하고 구현된 경우도 많다 이성주 (c) 2013 16
  • 17.  가장 널리 사용되는 UTF-8으로 잠시 변환한 다음, 일을 마치면 즉시 다시 유니코드로 변환>>> byte_str = uni_str.encode(‘utf-8’)…>>> uni_str = byte_str.decode(‘utf-8) 이성주 (c) 2013 17
  • 18.  Byte Order Mark ◦ 인코딩 정보를 파일에 내장하려는 시도 ◦ 윈도우에서 주로 사용 ◦ 2,3,4 바이트 길이>>> f = open(‘text.txt’, ‘w’)>>> bom = f.read(4) 이성주 (c) 2013 18
  • 19.  표준화된 방법은 없다. BOM이 단서가 되기도 HTTP 프로토콜을 사용하는 웹문서 등에서는 Content-type의 charset이 있는 경우 한국에서는 대부분 EUC-KR 또는 UTF-8 이성주 (c) 2013 19
  • 20.  http://en.wikipedia.org/wiki/Unicode#Mapping_and_encodin gs http://www.joelonsoftware.com/articles/Unicode.html http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF http://www.evanjones.ca/python-utf8.html http://farmdev.com/talks/unicode/ 이성주 (c) 2013 20
  • 21.  파이썬  컴퓨터과학 박사과정 (연세대학교) ◦ 영상 처리, 그래프, 인공지능 연구 ◦ 영상 인식, 인공지능, 그래프 이 에 사용 론 ◦ O’Reilley 파이썬 관련 서적 번역 작  전기전자공학 공학사 (연세대학교) 업중  캘리포니아 주립대 (Santa Cruz) ◦ 파이썬 관련 재미있는 주제 찾아서 책 쓰고 싶음 안드로이드 ◦ 앱 개발하면서 정리해서 좋은 책 쓰 고 싶음 C/C++, 자바, 안드로이드 강의플랫폼 관련 학위 관련 이성주 (c) 2013 21