我试图将aptana studio 3用于django项目,但无论我做了什么,都会得到unicodedecodeerror。
经过大量不成功的谷歌搜索,尝试了一个准确的django项目。不是我的一行代码,只是aptana的开始代码。
我期待django的常用空白页面(项目工作,尚未完成),但STILL得到了编码错误。我没有编写一行代码,因此没有拉丁字符或任何其他编码/解码的模板。
尝试:
Windows->偏好设置 - >常规 - >工作区 - >文本文件编码为UTF-8
右键单击项目 - >资源 - >文本文件编码为UTF-8
# - - 编码:utf-8 - - 在每个文件的第一行
什么都没有。
我有点被困在这里。有人可以帮忙吗?
Win7 64bit
来自控制台的错误消息:
Validating models...
0 errors found
April 02, 2014 - 17:55:34
Django version 1.6, using settings 'hello.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Traceback (most recent call last):
File "C:\Users\bruna\Documents\Aptana Studio 3 Workspace\hello\src\manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 399, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 285, in execute
output = self.handle(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 76, in handle
self.run(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 87, in run
self.inner_run(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 132, in inner_run
self.stderr.write("Error: %s" % error_text)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 65, in write
if ending and not msg.endswith(ending):
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 87: invalid continuation byte
答案 0 :(得分:0)
根据堆栈跟踪(您应该查找根本原因的实际位置)来判断,msg
中有ending
(最有可能,因为if ending and not msg.endswith(ending):
很少有87个字符长)这是无效的utf-8。这可能是设置文件或输入参数中的编码问题。
我建议:
msg
的值或在违规行之前添加repr(msg)
的调试打印答案 1 :(得分:0)
你试试:
manage.py dbshell
ALTER TABLE database.table MODIFY COLUMN col VARCHAR(255) CHARACTER SET utf8 COLLATE
utf8_general_ci NOT NULL;
更改database.table和col。 享受!
答案 2 :(得分:0)
一个原因是,您在过去的一段时间内与grep一起使用了sed:
sed -i "s#views_gaoji#fenye#g"
grep -rl views_gaoji。/`
以上命令将在不通知您的情况下修改.pyc文件。
然后,当您启动Django时, Django将以.pyc开头,而不是工程文件。
然后您将不知道错误在哪里而得到错误
要么
您的manage.py
文件中会出现错误,但您永远都不会对其进行修改,
那为什么为什么说您的manage.py有错误?
那是因为您的* .pyc文件已被sed
命令更改
解决方案:
find . -name "*.pyc" | xargs rm -f
,然后输入:
python manage.py runserver port