1
ericls 2014-09-13 09:11:26 +08:00 1
换linux
|
3
leopardwei 2014-09-13 09:16:42 +08:00 1
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 20: invalid start byte 显示 MySQL 配置报错,具体是 utf8 编码错误,贴出你的 setting。 |
4
skyline75489 2014-09-13 09:20:14 +08:00
我感觉这个更像是Windows的问题,Python的跨平台性已经很好了,但是Windows下还是偶尔会出些问题
|
5
hslx111 2014-09-13 09:22:07 +08:00
编程还是不要用windows 最好,可以避免很多环节问题。
当然python的编码确实很蛋疼 |
6
no13bus 2014-09-13 09:23:05 +08:00 via Android
mysql的数据库编码为utf8 generial
|
7
kongkongyzt 2014-09-13 09:24:15 +08:00 1
即使是在Linux下也被Python的utf8编码折磨过很多次的人幽幽地说,是的
|
8
ygmpkk 2014-09-13 09:26:36 +08:00
windows还有有件比较恶心的事情就,当注册表的目录键有中文的时候,python的http请求会报编码错误
|
9
4gShell OP @leopardwei
这是MySQL status Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 这是项目下的settings.py文件里截取的,会是下面LANGUAGE_CODE的设置的错误吗? DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': '3306', 'NAME': 'django_test', 'USER': 'root', 'PASSWORD': '123456' } } 1.7/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Aisa/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = True STATIC_URL = '/static/' |
10
leopardwei 2014-09-13 09:33:27 +08:00
把所有编码统统设为 utf-8,比如操作系统、数据库、编辑器、浏览器,省心简单,:-)
|
11
leopardwei 2014-09-13 09:37:22 +08:00
LANGUAGE_CODE 在 syncdb 的时候还没用上呢,浏览器访问时,HTTP 协议头中的 Accept-Language 用。
|
12
vicalloy 2014-09-13 09:46:09 +08:00 1
很可能你只是忘了在文件头上设置
# -*- coding: UTF-8 -*- |
13
onlyice 2014-09-13 09:49:49 +08:00 via Android 1
联系用 IDE 在抛异常处看看堆栈和产量值,应该很好定位问题
|
14
leopardwei 2014-09-13 09:53:08 +08:00
|
15
onlyice 2014-09-13 09:53:57 +08:00 via Android
另外,MySQLdb 库装的路径对么,是不是给你装在一个中文目录里了,然后你手动把它的路径加到 sys.path 中?
|
16
4gShell OP 插了三根烟,跪拜了,改了大家上面提到的点,但是就是not work,现在要砸电脑了
|
17
arbipher 2014-09-13 10:05:51 +08:00 1
http://stackoverflow.com/questions/10838016/unicodedecodeerror-utf8-codec-cant-decode-byte
"If you are using Notepad++ make sure the "encoding" (in the menu) of all your files is set to "UTF-8"." 试试? |
18
zjgsamuel 2014-09-13 10:06:33 +08:00 1
这才刚开始就准备放弃的节奏啦? 好好折腾吧~~
运行平台 编码 甚至代码缩进 这些都得注意哦 |
19
kafkakevin 2014-09-13 10:13:23 +08:00 1
Windows 上的问题不用解决。
服务器端的程序,换 Linux。 |
21
4gShell OP @kafkakevin 看来是要装个Linux,可是总觉得是在逃避问题...
|
22
maikcn 2014-09-13 10:24:06 +08:00 1
感觉是缺少 # -*- coding: UTF-8 -*-
以及文件编码不是utf-8 without BOM 导致的... |
23
kafkakevin 2014-09-13 10:31:19 +08:00
@4gShell 虚拟机跑起来。
|
24
loading 2014-09-13 10:31:53 +08:00 via iPad
你还没遇到mine的那个呢
|
25
z7039585 2014-09-13 10:34:26 +08:00
换个Linux试试
|
26
imn1 2014-09-13 10:48:12 +08:00 1
如果程序是utf-8编写的,在dos运行程序前,先运行
chcp 65001 这个命令是把当前dos环境设为codepage 65001,是windows中相当于utf-8的编码 再测试,至于dos字体,建议去下载unicode字体(例如arial unicode) 编码问题,无非是IO过程前后两个编码不一致,搞清楚就行 |
27
NearTan 2014-09-13 10:52:19 +08:00 1
刚开始阵痛是必须的,熟悉这种节奏之后就带感了
PS 推荐熟悉结构之后用IDE |
28
Kabie 2014-09-13 11:06:31 +08:00 1
试试Python3吧。。。
|
29
Cu635 2014-09-13 11:22:30 +08:00 1
lz的python版本?python2还是python3?
|
30
pandada8 2014-09-13 11:28:49 +08:00 via Android 1
Linux加Python3吧
|
31
zonyitoo 2014-09-13 11:53:23 +08:00 1
Linux + Python 3就可以解决楼主的问题
|
32
Reset 2014-09-13 11:56:44 +08:00 via iPhone 1
所有文件加上
#coding:utf8 所有字符串特别是中文使用 u"字符串" 可以一定程度降低编码烦恼 |
33
zzlettle 2014-09-13 12:00:35 +08:00 1
我就是在我的Win7 系统里面开发的django,我是python3
开发很顺利啊。编码问题的话,看你的编辑器了。我觉得python3处理一些什么这个码那个码的要好比python2 |
34
amycs 2014-09-13 12:14:14 +08:00
我也是卡在了编码上,叹气
|
35
frankzeng 2014-09-13 12:51:17 +08:00
python就是这编码一条不知卡死多少人,建议编码都采用utf8,从页面到数据库。
|
36
muzuiget 2014-09-13 12:54:28 +08:00
直接上 Linux,全世界 utf-8,省心。
|
37
xiaowangge 2014-09-13 13:19:29 +08:00 via Android
推荐搜索下: Python Weekly Unicode之痛。这篇文章赞(^_^)
|
38
daoluan 2014-09-13 13:46:45 +08:00
像 python这种高级语言易用性已经非常高了,按着错误提示寻找解决方法。这里应该是文件编码的问题,python 内部都是以 utf8 为标准的。
|
39
lu18887 2014-09-13 14:00:58 +08:00
这个问题我遇到过,不过不是在SYNCDB的时候,是插数据的时候,mysql默认编码不是UTF-8,改成UTF-8的就可以了。具体Google
|
40
4gShell OP @Reset 根据错误提示文件来看,都是因为python自带module以及MySQL支持module的文件出错,难道要在这些文件头前全部加上# ...coding...
|
42
imn1 2014-09-13 14:53:50 +08:00 1
utf8_unicode_ci和utf8_general_ci区别
在資料庫系統MySQL中有多种字符集,其中utf8_unicode_ci和utf8_general_ci是最常用的,但是utf8_general_ci对某些语言的支持有一些小问题,如果可以接受,那最好使用utf8_general_ci,因为它速度快。否则,请使用较为精确的utf8_unicode_ci,不过速度会慢一些。 ----------------------------------------摘自wiki google也没有见到好的解决方案,但有两个帖子说重装了mysqldb模块解决,我没用过dj,不清楚是否这样 |
44
cbsw 2014-09-13 18:25:34 +08:00
先考虑一下项目能不能用 python3,能的话就赶紧切到 py3 上,自己学习的话就更应该用 python3 了,python 党要积极地拥抱 python3,现在连 django,flask,numpy,scipy,scikit-learn,sphinx等这些大型项目都已经支持 python3 了,python3 在很多方面都是比较方便的,基本也不会遇到编码问题了
|
47
Reset 2014-09-14 07:59:52 +08:00 via iPhone
@4gShell 猜测主要是你的 model 有些字段用了中文 比如 verbose_name 之类的
把你自己写的 py 文件都加上编码utf8的声明,然后用 unicode 字符串 如果能直接用 py3 最好 不折腾 |
48
leopardwei 2014-09-14 09:29:51 +08:00
@4gShell 楼主你太纠结了,强迫症严重了点儿,呵呵
这明显是编码问题了,既然已经知道问题所在,也有解决办法,还耿耿于怀,何必呢!在 windows 下很受伤,换个地方吧,如 Linux 或者 Mac 之类的。 |
49
azuginnen 2014-09-14 09:37:29 +08:00
|
50
iam36 2014-09-14 09:50:20 +08:00 via Android
把你粘过来的代码中的符号都手工重新录入一下,尤其是什么引号冒号之属。
|
51
4gShell OP @leopardwei 强迫症重度患者,好害羞。已换到ubuntu,不过眼睛看的好累。
|
52
leopardwei 2014-09-14 23:50:17 +08:00 via iPad
用 ubuntu 换大屏幕显示器,终端字体及背景设好,哦,对了,字体大一点,一样很 OK 的说。
|
53
jun4rui 2014-09-15 10:31:40 +08:00
Ruby也一样的,在Windows下(简体Windows默认字符集是GBK,还不能改)各种报错……
|
54
lzjun 2016-09-02 09:07:28 +08:00
|