답변:
u는 u'Some String'
문자열이 유니 코드 문자열 임을 의미 합니다. .
Q : 끔찍하고 끔찍하며 Google 검색에서 여기에 도착했습니다. 이 데이터를 파일에 쓰려고하는데 오류가 발생합니다. 이번에는 가장 간단하고 결함이있는 죽은 솔루션이 필요합니다.
A : 실제로 모든 소프트웨어 개발자는 Joel의 절대 최소값을 반드시 읽어야합니다. 유니 코드 및 문자 집합에 대해 반드시 알아야합니다 (변명 없음). 에세이에 합니다.
Q : Sry No Time Code PLS
벌금. str('Some String')
또는을 시도하십시오 'Some String'.encode('ascii', 'ignore')
. 하지만 당신은 정말에 대한 답변과 토론의 일부를 읽어야 유니 코드 문자열로 변환 하고 이 문자 인코딩에 우수, 우수, 프라이머.
내 생각에 "유니 코드"를 나타내는 것입니다. 맞습니까?
예.
그렇다면 언제부터 이용할 수 있습니까?
파이썬 2.x.
Python 3.x에서 문자열은 기본적으로 유니 코드를 사용하므로 u
접두사 가 필요하지 않습니다 . 참고 : Python 3.0-3.2에서 u는 구문 오류입니다. Python 3.3 이상에서는 2/3 호환 앱을 더 쉽게 작성할 수 있습니다.
u
접두사 를 사용하는 것은 Python 3의 구문 오류입니다 .
six.text_type()
여전히 3 을 사용 하는 (희망적으로 적은 수의) 사람들 을 위해 어디에서나 사용할 것인지를 결정해야하기 때문에 . -최소한 정보가 있으므로 선택할 수 있습니다.
requests
출력물 에 재미있는 숯 증후군이 있었기 때문에 여기에 왔습니다 . 나는 생각했다response.text
제대로 해독 된 문자열을 것이라고 했지만 출력에서 독일 움라우트가 있어야하는 재미있는 이중 문자를 발견했습니다.
턴 아웃 response.encoding
어떻게 든 그렇게 비어response
제대로 컨텐츠를 디코딩하는 방법을 알고하지 않았고 단지 ASCII (I 추측)로 처리 하였다.
내 솔루션은 'response.content'로 원시 바이트를 가져 와서 수동으로 적용 decode('utf_8')
하는 것이 었습니다. 결과는 schöne Umlaute입니다.
올바르게 디코딩
모피
잘못 해독 된 대
퓌르
인간을위한 모든 줄은 u ""를 사용해야합니다.
파이썬 문자열을 다룰 때 다음과 같은 사고 방식이 많은 도움이된다는 것을 알았습니다. 모든 Python 매니페스트 문자열은 u""
구문을 사용해야 합니다. ""
구문 만 바이트 배열입니다.
강타가 시작되기 전에 설명하겠습니다. 대부분의 파이썬 프로그램 ""
은 문자열 을 사용하여 시작합니다 . 그러나 그들은 인터넷에서 문서를 지원해야하므로 사용을 시작 "".decode
하고 갑자기이 코드를 해독하는 것에 대한 예외가 발생합니다.""
문자열을 합니다. 이 경우 유니 코드는 바이러스처럼 작동하여 혼란을 초래할 수 있습니다.
그러나 내 규칙을 따르면이 감염이 발생하지 않습니다 (이미 감염 되었기 때문).
bash -c "echo Shouldn\\'t you use b\\\"...\\\" for byte arrays?"
u""
.
유니 코드입니다.
사이에 변수를 넣으면 str()
정상적으로 작동합니다.
그러나 다음과 같은 두 가지 목록이있는 경우 :
a = ['co32','co36']
b = [u'co32',u'co36']
확인하면 set(a)==set(b)
False로 표시되지만 다음과 같이하면
b = str(b)
set(a)==set(b)
이제 결과는 True입니다.
str()
또는 u'€'.encode()
)를 인코딩해서는 안됩니다 . 문자열에 비 ASCII가 포함 된 경우 사용자는 UnicodeEncodeException을 수신합니다.
b = str(b)
그냥 repr()
목록 의 문자열 을 제공합니다 b = "[u'co32', u'co36']"
. 그때set(a)==set(b) = False