Nano Hash - криптовалюты, майнинг, программирование

ошибка кодирования в pycharm для python3

Я использую python3 в pycharm, но кажется, что pycharm не использует utf8 в качестве метода кодирования по умолчанию.

Например, я пытаюсь открыть без установки параметра кодировки и напечатать строку

with open('/Users/test.txt','r') as file:
    print(file.readline())

а потом я получил

UnicodeDecodeError: кодек ascii не может декодировать байт 0xe8 в позиции 0: порядковый номер не в диапазоне (128)

Пока я могу открыть файл без установки параметра «кодировка» в блокноте iterm2 и Jupyter. Итак, я предполагаю, что это связано с настройкой кодирования в pycharm, и я пробовал все настройки кодировки в pycharm, но это также не сработало.


Ответы:


1

Я тестировал на python-IDLE, а не на pycharm, и получил тот же ответ, что и ваш. Кодировка файла — UTF-8, а метод кодирования, используемый при открытии файла, — ASCII. Я нашел 2 решения, чтобы избежать этого:

Измените метод кодирования, используемый для открытия файла:

Модуль codec содержит некоторую операцию для этого. Для удобства вы можете напрямую передать параметр кодирования в свой код, чтобы объявить метод кодирования.

with open('/Users/test.txt','r',encoding="utf-8") as file:
    print(file.readline())

Измените метод кодирования файла:

Существует много способов изменить метод кодирования файла. Если вы используете ОС Windows, это будет более удобно. Откройте файл test.txt с помощью Блокнота, затем нажмите Файл > Сохранить как.... В интерфейсе Сохранить как измените кодировку файла (в нижней позиции) с UTF-8 на ANSI, наконец, Сохранить и замените исходный файл. После этого попробуйте запустить код в pycharm или другой IDE, и вы получите правильный результат. Надеюсь, поможет.

25.01.2018
  • Спасибо за ответ на этот вопрос, я могу открыть с явной установкой параметра encoding=utf-8, но я просто запутался, почему настройка по умолчанию не 'utf-8' в пичарме. более того, когда я пытаюсь записать информацию журнала в файл, также возникает та же ошибка, и мне приходится вручную устанавливать метод кодирования с помощью logging.FileHandler. 26.01.2018
  • В любом случае, эта проблема может быть тривиальной, и может быть не так много людей, сталкивающихся с одним и тем же вопросом, мне просто нужно, чтобы я каждый раз явно устанавливал параметр encoding. 26.01.2018
  • Хм, кодировка файла по умолчанию в pycharm на моем компьютере — UTF-8. Может быть, вы можете сбросить его на UTF-8 и снова попробовать этот код? 26.01.2018

  • 2

    PyCharm передает пустое значение для переменной окружения LC_CTYPE:

    См.: PyCharm меняет значение по умолчанию кодирование в моем приложении Django

    26.06.2018
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..