당신은 (파이썬 2.X에서) 유니 코드로의 목록을 변환 할 문자열의 인코딩, 그래서 하나의 방법을 감지 chardet를 사용할 수는 다음과 같습니다
import chardet
def unicodify(seq, min_confidence=0.5):
result = []
for text in seq:
guess = chardet.detect(text)
if guess["confidence"] < min_confidence:
# chardet isn't confident enough in its guess, so:
raise UnicodeDecodeError
decoded = text.decode(guess["encoding"])
result.append(decoded)
return result
...하는 당신 ' 이 같은 D 사용 :
>>> unicodify(["¿qué?", "什么?", "what?"])
[u'\xbfqu\xe9?', u'\u4ec0\u4e48\uff1f', u'what?']
주의 : chardet 같은 솔루션은 최후의 수단으로 만 사용해야합니다 (예를 들어, 때문에 과거의 실수로 손상의 데이터 집합을 수리 할 때). 생산 코드에 의존하기에는 너무 취약합니다. 대신 @ bames53이이 대답에 대한 주석에서 지적했듯이, 먼저 데이터를 손상시킨 코드를 수정해야합니다.
인코딩에 대한 표시가 있습니까? 인코딩을 추측 할 수도 있지만 부정확 할 것입니다. –
입력 문자열의 몇 가지 예를 포함시킬 수 있습니까? 또한 Python 2.x 또는 3.x를 사용하고 있습니까? –
ASCII는 cp1251의 하위 집합이며 (다른 모든 인코딩과 거의 동일합니다) 문제의 일부분이 문제가되지 않습니다. 문자열 중 일부가 cp1251에 있다는 것을 어떻게 알 수 있습니까? 러시아 데이터를 얻는다면 "다른 것"이 될 수 있습니다. 또는 UTF-8이 될 수도 있습니다. 예제를 제공하십시오. 또한 다른 인코딩을 사용하는 문자열 목록을 얻는 방법을 알려주십시오. –