1 错误提示
某天,有小童鞋问他的django项目启动为什么会出错。
错误的图示如下:
错误内容是 “UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 2: invalid start byte”
一个新建的project,连代码都没有写,怎么就会出现字符编码的错误呢。而且是在内部的socket注册绑定的时候引发错误。百思不得其解。
2 错误原因
查了堆资料,网上说这个问题的好像不多,最后还是找到一篇文章有提及。原来是因为计算机名含有中文,Django的WEB服务在socket注册时会直接使用计算机名作为参数查询地址等相关信息。r如果windows(出错的是windows 11)的计算机名是中文,就引发了这个utf-8编码的错误。这里可以推断,windows 11的计算机名不是用utf-8编码的。
3 解决方案
知道原因就好解决了。将计算机名修改为英文字符就ok了。
PS:要做开发的童鞋,用户名,计算机名,项目目录,代码文件命名之类的,都养成习惯,不要用中文,这样可以避免很多不必要的麻烦。