2011-03-10 6 views
8

파일 시스템에서 파일 이름을 읽었으며이를 JSON 인코딩 된 배열로 보내려고합니다. 문제는 파일 시스템의 파일을 유효하지 않은 인코딩으로 저장할 수 있고,이 상황을 처리하여 json.dump에 전달하기 전에 유효하지 않은 파일 이름을 생략해야합니다. 그렇지 않으면 실패합니다.Python에서 유효한 utf8 문자열을 확인하십시오.

내 문자열 (filename)에 유효한 utf-8 문자가 포함되어 있는지 확인하는 방법이 있습니까?

+2

저를 충격 : 여기에 비슷한 질문에 대한 답변에 따라

valid_utf8 = True try: filename.decode('utf-8') except UnicodeDecodeError: valid_utf8 = False 

.... * 왜 * 파일에 유효한 UTF-8 파일 이름이 없습니까? –

+0

utf-8로 인코딩되지 않은 파일 이름이거나 파일의 데이터입니까? 나는 혼란 스럽다. – mouad

+2

인코딩을 확인하지 않고 ID3 태그를 기반으로 파일 이름을 만드는 버그가있는 소프트웨어는 어떨까요? 또는 파일 이름에 이상한 문자 인코딩을 사용하는 오래된 파일 시스템을 마운트하는 (잘못된 옵션으로)? –

답변

17
+0

ifinstance (filename, unicode) : print "unicode string" – mithuntnt

+0

@mithuntnt : 질문은 파이썬 문자열이 '유니 코드'인지 묻지 않습니다. 파일 시스템의 파일 이름을 구성하는 바이트가 유효한 UTF-8인지 여부를 묻습니다. –

+0

나를 위해 실제로이 경우 UnicodeEncodeError 오류를 잡아야했습니다 ... –

관련 문제