Форум сайта python.su
0
Добрый день!
Делаю одно задание в Спайдере с приведением слов в тексте к нормальной форме. Текст из блокнота.
Появляется ошибка:
UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xd0 in position 3: ordinal not in range(128)
Перерыла весь интернет, решение вопроса не нашла. Кодировка в доке и коде указана utf-8. Пробовала вариант с заменой языка системы, видела вариант изменения местоположения locale. Но так и не удалось даже определить начальное положение.
В Python новичок. Просьба подсказать, как избавиться от ошибки.
Офлайн
568
Виндовз? Имя пользователя и имя компьютера должны быть латиницей
Офлайн
0
FishHook, спасибо. Вроде как раз у меня Не на латинице. Буду менять.
А может ли ошибка не только в этом быть?
Офлайн
568
enedorezova
Конечно может, по так как вы не показали ни трейсбэк ошибки ни саму программу, остается только угадывать
Офлайн
568
enedorezova
В какой кодировке файл программы? Винда не знает utf-8, как вы его создавали вообще?
Офлайн
0
файл программы - .py
внутри указано - # -*- coding: utf-8 -*-
Текст для работы с ним берется из блокнота (text.txt).
f = open('test.txt', ‘r’, encoding='utf8')
text = f.read()
Прикреплённый файлы:
Сохранение.jpg (14,2 KБ)
Офлайн
568
enedorezova
вы понимаете что такое кодировка? Есть таблица символов, каждый символ обозначаем некоторым числом. Допустим “Ф” = 33, а может быть другая кодировка, где “Ф” = 131. Ваш файл программы - это текст в некоторой кодировке. Скажите, если вы внутри этого файла напишете “кодировка=такая-то”, что от этого изменится? Это указание интерпретатору к какой кодировке файл. Но сам то файл должен быть в этой кодировке! Виндоуз в отличие от других ОС работает по умолчанию с кодировкой CP-2151, а не UTF-8.
f = open('test.txt', ‘r’, encoding='utf8')
Офлайн
0
FishHook, кодировка файла
Прикреплённый файлы:
Безымянный - Paint.jpg (47,2 KБ)
Офлайн
568
enedorezova
f = open('test.txt', ‘r’, encoding='utf8')
Офлайн
0
Все дело в кавычках?
Офлайн