문제

Python에서 ASCII가 아닌 문자를 인쇄 (또는 파일에 작성) 할 때 문제가 있습니다. 나는 그것을 무시함으로써 그것을 해결했다 str 내 자신의 객체에서 메소드와 그 안에 "x.encode ( 'utf-8')"만들기, 여기서 x는 객체 내부의 속성입니다.

그러나 제 3 자 객체를 받고 "str (object)"을 만들고이 개체에는 ASCII가 아닌 문자가 있으면 실패합니다.

그래서 질문은 다음과 같습니다. str 객체에 UTF-8 체계화가있는 방법은 일반적으로? Python 2.5.4로 작업하고 있습니다.

도움이 되었습니까?

해결책 4

UNIX 시스템에서 솔루션을 찾아 환경 VAR을 내보내는 솔루션을 찾았다 고 말하고 싶습니다.

내보내기 lc_ctype = "es : es.utf-8"

이런 식으로 모든 파일은 UTF-8이므로 인쇄물을 만들 수 있으며 잘 작동합니다.

다른 팁

만들 방법이 없습니다 str() Python <3.0에서 유니 코드로 작업하십시오.

사용 repr(obj) 대신에 str(obj). repr() 결과를 ASCII로 변환하여 ASCII 코드 범위에 있지 않은 모든 것을 올바르게 탈출합니다.

그 외에는 유니 코드를 허용하는 파일 객체를 사용하십시오. 따라서 입력 측면에서 인코딩하지 않고 출력 측면에서는 다음과 같습니다.

fileObj = codecs.open( "someFile", "w", "utf-8" )

이제 유니 코드 문자열을 쓸 수 있습니다 fileObj 그리고 필요에 따라 개조 될 것입니다. 같은 일을하기 위해 print, 당신은 포장해야합니다 sys.stdout:

import sys, codecs, locale
print str(sys.stdout.encoding)
sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)
line = u"\u0411\n"
print type(line), len(line)
sys.stdout.write(line)
print line

당신은 어떻습니까? unicode(object) 그리고 정의 __unicode__ 수업에 대한 방법?

그런 다음 유니 코드를 알고 파일에 원하는 것을 인코딩 할 수 있습니다.

none_ascii = '''
        ███╗   ███╗ ██████╗ ██╗   ██╗██╗███████╗███████╗ 
        ████╗ ████║██╔═══██╗██║   ██║██║██╔════╝██╔════╝ 
        ██╔████╔██║██║   ██║██║   ██║██║█████╗  ███████╗ 
        ██║╚██╔╝██║██║   ██║╚██╗ ██╔╝██║██╔══╝  ╚════██║ 
        ██║ ╚═╝ ██║╚██████╔╝ ╚████╔╝ ██║███████╗███████║ 
        ╚═╝     ╚═╝ ╚═════╝   ╚═══╝  ╚═╝╚══════╝╚══════╝ 
'''

print(none_ascii.decode('utf-8'))

코드 상단 에이 두 줄을 붙여 넣으십시오.

  1. #!/usr/local/bin/python
  2. # 코딩 : 라틴어 -1

자세한 내용은이 링크를 방문하십시오 https://www.python.org/dev/peps/pep-0263/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top