Проверьте правильность строки utf8 в Python - PullRequest
9 голосов
/ 10 марта 2011

Я читаю имена файлов из файловой системы и хочу отправить их в виде JSON-кодированного массива. Проблема в том, что файлы в файловой системе могут храниться в недопустимой кодировке, и мне нужно разобраться в этой ситуации, чтобы пропустить недопустимые имена файлов перед передачей их в json.dump, иначе это не удастся.

Есть ли способ проверить, что моя строка (имя файла) содержит действительные символы utf-8?

1 Ответ

17 голосов
/ 10 марта 2011

Как насчет попробовать следующее?

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

... основываясь на ответе на подобный вопрос здесь: Как написать проверку на python, чтобы проверить, является ли файл действительным UTF-8?

...