[python] 파이썬에서 유니 코드 문자를 인쇄하는 방법은 무엇입니까?

영어 단어가 러시아어와 프랑스어 번역을 가리키는 사전을 만들고 싶습니다.

파이썬에서 유니 코드 문자를 어떻게 인쇄합니까? 또한, 유니 코드 문자를 변수에 어떻게 저장합니까?



답변

Python 소스 코드에 유니 코드 문자를 포함하려면 문자열 의 형식 에 유니 코드 이스케이프 문자 를 사용 \u0123하고 문자열 리터럴 앞에 ‘u’를 붙일 수 있습니다.

다음은 Python 대화 형 콘솔에서 실행되는 예입니다.

>>> print u'\u0420\u043e\u0441\u0441\u0438\u044f'
Россия

이와 같이 선언 된 문자열은 Python 유니 코드 문서에 설명 된대로 유니 코드 유형 변수 입니다.

위의 명령을 실행해도 텍스트가 올바르게 표시되지 않으면 터미널에서 유니 코드 문자를 표시 할 수없는 것입니다.

파일에서 유니 코드 데이터를 읽는 방법에 대한 자세한 내용은 다음 답변을 참조하십시오.

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-8Python을 실행하기 전에 수행 됩니다 (이 변수는 콘솔이 문자열 데이터를 인코딩하려는 바이트 시퀀스를 제어합니다). 내부적으로 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