
1 ericls 2014-09-13 09:11:26 +08:00 1 换linux |
3 leopardwei 2014-09-13 09:16:42 +08:00 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 即使是在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 很可能你只是忘了在文件头上设置 # -*- coding: UTF-8 -*- |
13 onlyice 2014-09-13 09:49:49 +08:00 via Android 联系用 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 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 这才刚开始就准备放弃的节奏啦? 好好折腾吧~~ 运行平台 编码 甚至代码缩进 这些都得注意哦 |
19 kafkakevin 2014-09-13 10:13:23 +08:00 Windows 上的问题不用解决。 服务器端的程序,换 Linux。 |
21 4gShell OP @kafkakevin 看来是要装个Linux,可是总觉得是在逃避问题... |
22 maikcn 2014-09-13 10:24:06 +08:00 感觉是缺少 # -*- 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 如果程序是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 刚开始阵痛是必须的,熟悉这种节奏之后就带感了 PS 推荐熟悉结构之后用IDE |
28 Kabie 2014-09-13 11:06:31 +08:00 试试Python3吧。。。 |
29 Cu635 2014-09-13 11:22:30 +08:00   lz的python版本?python2还是python3? |
30 pandada8 2014-09-13 11:28:49 +08:00 via Android Linux加Python3吧 |
31 zonyitoo 2014-09-13 11:53:23 +08:00 Linux + Python 3就可以解决楼主的问题 |
32 Reset 2014-09-13 11:56:44 +08:00 via iPhone 所有文件加上 #coding:utf8 所有字符串特别是中文使用 u"字符串" 可以一定程度降低编码烦恼 |
33 zzlettle 2014-09-13 12:00:35 +08:00 我就是在我的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 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,不清楚是否这样 |