如何解决python UnicodeDecodeError问题?

查看:400
本文介绍了如何解决python UnicodeDecodeError问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

安装完django之后没有进行任何多余操作,新建工程,直接运行python manage.py runserver报错

D:\myblog>python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\core\management\__init__.py", line 355, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\core\management\commands\runserver.py", line 62, in execute
    super(Command, self).execute(*args, **options)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\core\management\base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\core\management\commands\runserver.py", line 101, in handle
    self.run(**options)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\core\management\commands\runserver.py", line 110, in run
    autoreload.main(self.inner_run, None, options)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\utils\autoreload.py", line 341, in main
    reloader(wrapped_main_func, args, kwargs)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\utils\autoreload.py", line 312, in python_reloader
    exit_code = restart_with_reloader()
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\utils\autoreload.py", line 294, in restart_with_reloader
    str_value = force_bytes(new_environ[key], encoding=encoding)
  File "C:\ProgramData\Anaconda2\lib\site-packages\django\utils\encoding.py", line 124, in force_bytes
    return s.decode('utf-8', errors).encode(encoding, errors)
  File "C:\ProgramData\Anaconda2\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xba in position 0: invalid start byte

经过搜索,怀疑是win10编码环境一类的问题导致的,因为我尝试在python命令行下运行

>>> "测试".decode('utf-8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda2\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 0: invalid start byte

在linux环境下,这样decode是不会报错的。请问问题出在哪里?该怎么解决呢

解决方案

编码不一样,linux命令行可以用utf8解码,windows命令行一般是gbk

这篇关于如何解决python UnicodeDecodeError问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆