영어 단어가 러시아어와 프랑스어 번역을 가리키는 사전을 만들고 싶습니다.
파이썬에서 유니 코드 문자를 어떻게 인쇄합니까? 또한, 유니 코드 문자를 변수에 어떻게 저장합니까?
답변
Python 소스 코드에 유니 코드 문자를 포함하려면 문자열 의 형식 에 유니 코드 이스케이프 문자 를 사용 \u0123
하고 문자열 리터럴 앞에 ‘u’를 붙일 수 있습니다.
다음은 Python 대화 형 콘솔에서 실행되는 예입니다.
>>> print u'\u0420\u043e\u0441\u0441\u0438\u044f'
Россия
이와 같이 선언 된 문자열은 Python 유니 코드 문서에 설명 된대로 유니 코드 유형 변수 입니다.
위의 명령을 실행해도 텍스트가 올바르게 표시되지 않으면 터미널에서 유니 코드 문자를 표시 할 수없는 것입니다.
파일에서 유니 코드 데이터를 읽는 방법에 대한 자세한 내용은 다음 답변을 참조하십시오.
답변
Python에서 유니 코드 문자를 인쇄합니다.
파이썬 인터프리터에서 직접 유니 코드 문자를 인쇄합니다.
el@apollo:~$ python
Python 2.7.3
>>> print u'\u2713'
✓
유니 코드 문자 u'\u2713'
는 확인 표시입니다. 통역사가 화면에 확인 표시를 인쇄합니다.
Python 스크립트에서 유니 코드 문자를 인쇄합니다.
이것을 test.py에 넣으십시오.
#!/usr/bin/python
print("here is your checkmark: " + u'\u2713');
다음과 같이 실행하십시오.
el@apollo:~$ python test.py
here is your checkmark: ✓
확인 표시가 나타나지 않으면 터미널 설정이나 스트림 리디렉션으로 수행중인 작업과 같은 다른 곳에서 문제가있을 수 있습니다.
파일에 유니 코드 문자 저장 :
이것을 파일에 저장하십시오 : foo.py :
#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
import codecs
import sys
UTF8Writer = codecs.getwriter('utf8')
sys.stdout = UTF8Writer(sys.stdout)
print(u'e with obfuscation: é')
그것을 실행하고 출력을 파일로 파이프하십시오.
python foo.py > tmp.txt
tmp.txt를 열고 내부를 살펴보면 다음과 같습니다.
el@apollo:~$ cat tmp.txt
e with obfuscation: é
따라서 난독 화 표시가있는 유니 코드 e를 파일에 저장했습니다.
답변
print()
유니 코드를 시도하고 ascii 코덱 오류가 발생 하는 경우이 페이지를 확인하세요 . TLDR은 export PYTHONIOENCODING=UTF-8
Python을 실행하기 전에 수행 됩니다 (이 변수는 콘솔이 문자열 데이터를 인코딩하려는 바이트 시퀀스를 제어합니다). 내부적으로 Python3은 기본적으로 UTF-8을 사용 합니다 (Unicode HOWTO 참조) .) 그게 문제가 아닙니다. 다른 답변과 주석에서 볼 수 있듯이 유니 코드를 문자열에 넣을 수 있습니다. 문제가 발생하는 것은이 데이터를 콘솔로 가져 오려고 할 때입니다. Python은 콘솔이 ASCII 만 처리 할 수 있다고 생각합니다. 다른 답변 중 일부는 “먼저 파일에 쓰기”라고 말하지만 인코딩 (UTF-8)을 지정하고 (따라서 Python은 쓰기에서 아무것도 변경하지 않음) 읽기 방법을 사용합니다. 인코딩에 관계없이 바이트를 뱉어내는 파일이 작동하는 이유입니다.
답변
파이썬이, 당신은 유니 코드 문자열 선언 u
에서와 같이, u"猫"
사용 decode()
및 encode()
에 각각 유니 코드로 변환 할 수 있습니다.
파이썬 3에서는 꽤 쉽습니다. 아주 좋은 개요는 여기 에서 찾을 수 있습니다 . 그 발표는 저에게 많은 것을 명확히 해주었습니다.
답변
이것이 Google 이이 주제를 검색 할 때 첫 번째 스택 오버플로 결과라는 점을 고려할 때, u
유니 코드 문자열 접두사 는 Python 3에서 선택 사항 임을 언급합니다. (Python 2 예제는 최상위 답변에서 복사되었습니다)
Python 3 (두 작업 모두) :
print('\u0420\u043e\u0441\u0441\u0438\u044f')
print(u'\u0420\u043e\u0441\u0441\u0438\u044f')
파이썬 2 :
print u'\u0420\u043e\u0441\u0441\u0438\u044f'
답변
Windows에서 Portable winpython을 사용하고 IPython QT 콘솔을 포함하여 다음을 얻을 수 있습니다.
>>>print ("結婚")
結婚
>>>print ("おはよう")
おはよう
>>>str = "結婚"
>>>print (str)
結婚
유니 코드 문자를 표시하려면 콘솔 인터프리터가 유니 코드를 지원해야합니다.
답변
아직 추가되지 않은 것 하나만 더
Python 2에서 유니 코드가있는 변수를 인쇄하고를 사용하려면 .format()
다음을 수행하십시오 (다음을 사용 하여 유니 코드 문자열로 형식화되는 기본 문자열을 만드십시오 u''
.
>>> text = "Université de Montréal"
>>> print(u"This is unicode: {}".format(text))
>>> This is unicode: Université de Montréal