0
를 사용하여 .json 텍스트 파일에 악센트 전자에 악센트 전자 인코딩 데이터를 처리 한 다음 일부 JSON을 출력합니다. 내가 인코딩/디코딩 세부 사항 주위에 내 머리를지고 몇 가지 문제가 있습니다. 이것은 아마도 가장 좋은 예로 설명된다내가 몇 가지를 할 필요가 파이썬 스크립트로 자바 스크립트 소스 파일에서 (그러나 악센트 <code>e</code>와) 단어 <code>cafe</code>을 포함 복사 문자열을 오전 파이썬
$ python
>>> import urllib2, json
>>> the_name = "Tasty Caf%C3%E9"
>>> the_name
'Tasty Caf%C3%E9'
>>> the_name_unquoted = urllib2.unquote(the_name)
>>> the_name_unquoted
'Tasty Caf\xc3\xe9'
>>> json.dumps({'bla': the_name_unquoted})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 201, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode
return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 9: invalid continuation byte
분명히 나는 그것을받지 못했습니다하지만 내가 인코딩 작동 방식을 이해하려고 시간을 보냈어요. 정확히 어떤 인코딩/형식 (다른 적절한 용어는 여기에 있습니까?)은 위의 the_name_unquoted
이며 utf8이 올바르게 디코딩 할 수 없다는 내용은 무엇입니까?
>>> the_name '='맛의 카페인 % C3 %의 E9의 '유니 >>> the_name = (the_name) >>> 인쇄 urllib2.unquote (the_name)는'상기 수평선 맛을 제공 CafAe' A와 e 위의 악센트 내가 왜 카페에서 'A'를 얻는 지 알기나 해? –
EDIT : 아마 내 데이터 소스의 이상한 유물 ... –