python创建服务器时出现UnicodeDecodeError:

from flask import Flask

app = Flask(__name__);

app.run();

运行后会出现

D:\Fuwuqi>demo1.py
Traceback (most recent call last):
File "D:\Fuwuqi\demo1.py", line 23, in
app.run();
File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\site-packages\flask\app.py", l
ine 841, in run
run_simple(host, port, self, **options)
File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving
.py", line 739, in run_simple
inner()
File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving
.py", line 699, in inner
fd=fd)
File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving
.py", line 593, in make_server
passthrough_errors, ssl_context, fd=fd)
File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving
.py", line 504, in init
HTTPServer.__init__(self, (host, int(port)), handler)
File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\socketserver.py", line 453, in
init
![    self.server_bind()<br>
  File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\http\server.py", line 138, in<br>
server_bind<br>
    self.server_name = socket.getfqdn(host)<br>
  File "C:\Users\顾准\AppData\Local\Programs\Python\Python36-32\lib\socket.py", line 673, in getfq<br>
dn<br>
    hostname, aliases, ipaddrs = gethostbyaddr(name)<br>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 0: invalid start byte<br>
图片图片说明](https://img-ask.csdn.net/upload/201710/31/1509439808_916754.png)说明



2个回答

编码问题,
文件前面加上这个前缀# -*- coding: utf-8 -*-

qq_40048941
qq_40048941 回复helloemk: 找到问题了老哥,问题在于我的计算机名称是中文命名的,改为英文后就可以正常使用了
大约 2 年之前 回复
helloemk
深圳摆地摊er 回复qq_40048941: 有木有把编译器的编码也设置一下,比如vim编辑器 vim: set fileencoding=utf-8 :
大约 2 年之前 回复
qq_40048941
qq_40048941 回复helloemk: 我也把路径都给改过了以前是user下有个用户叫“顾准” 我把他改成英文 , 注册表也改了 还是不可以
大约 2 年之前 回复
helloemk
深圳摆地摊er 回复qq_40048941: 这个肯定是编码有问题,和系统没关系,我以前也遇到过,后来我把所有的中文,包括路径的中文都给换掉了,就好了,不过太麻烦了,你可以试试
大约 2 年之前 回复
qq_40048941
qq_40048941 我试过了。。。是不是因为我系统64位而我的python是32位?
大约 2 年之前 回复

凡是UnicodeDecodeError 都是编码问题,在decode()中指定正确的encoding即可。
为避免编码错误,建议在python环境指定编码为utf-8,然后所有其它编码的字节串或者字符串都转成utf-8编程。

qq_40048941
qq_40048941 谢谢,我的问题出在我的计算机名称是中文的,改了之后就可以正常使用了
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问