2007年01月09日 星期二 12:41
google了很久,发现针对utf8字符集的问题,没有很好的解决办法,不知道是不是我没有搜索到。 我遇到的情况是这样的,我感觉好像好多人都是这样: mysql3.x,用的是latin1字符集,而我现在要存储的数据是utf8的,又不能修改mysql的默认字符集,又不能象mysql4.1那样指定一个。怎么办呢? 目前我的办法是修改了cursors.py中的一些内容,从而能够自己指定,但是,造成了无法使用execute()的第二个参数。 有没有什么比较好的办法解决呢?不要改数据库配置,不要改python-mysql的脚本。我实在没有办法了。只能高人指点迷津。 ___________________________________________________________ 抢注雅虎免费邮箱-3.5G容量,20M附件! http://cn.mail.yahoo.com
2007年01月09日 星期二 12:57
On 1/9/07, mikegaulmail-python在yahoo.com.cn <mikegaulmail-python在yahoo.com.cn> wrote: > google了很久,发现针对utf8字符集的问题,没有很好的解决办法,不知道是不是我没有搜索到。 > > 我遇到的情况是这样的,我感觉好像好多人都是这样: > > mysql3.x,用的是latin1字符集,而我现在要存储的数据是utf8的,又不能修改mysql的默认字符集,又不能象mysql4.1那样指定一个。怎么办呢? > > 目前我的办法是修改了cursors.py中的一些内容,从而能够自己指定,但是,造成了无法使用execute()的第二个参数。 > > 有没有什么比较好的办法解决呢?不要改数据库配置,不要改python-mysql的脚本。我实在没有办法了。只能高人指点迷津。 > 如果没有DB 直接搜索的要求的话, 我的经验是使用base64 编码提交给DB! 这样Python 这边正常使用utf-8 只是DB 中存储的都是 base64 编码过后的latin1 字串, 使用和提取或是显示时都没有问题的 > > > > > ___________________________________________________________ > 抢注雅虎免费邮箱-3.5G容量,20M附件! > http://cn.mail.yahoo.com > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -- '''Time is unimportant, only life important! blog@ http://blog.zoomquiet.org/pyblosxom/ wiki@ http://wiki.woodpecker.org.cn/moin/ZoomQuiet douban@ http://www.douban.com/people/zoomq/ ____________________________________ Please use OpenOffice.org to replace M$ office. http://zh.openoffice.org Please use 7-zip to replace WinRAR/WinZip. http://7-zip.org/zh-cn/ You can get the truely Freedom from software. '''
2007年01月09日 星期二 13:02
mikegaulmail-python在yahoo.com.cn 写道: > google了很久,发现针对utf8字符集的问题,没有很好的解决办法,不知道是不是我没有搜索到。 > > 我遇到的情况是这样的,我感觉好像好多人都是这样: > > mysql3.x,用的是latin1字符集,而我现在要存储的数据是utf8的,又不能修改mysql的默认字符集,又不能象mysql4.1那样指定一个。怎么办呢? > > 目前我的办法是修改了cursors.py中的一些内容,从而能够自己指定,但是,造成了无法使用execute()的第二个参数。 > > 有没有什么比较好的办法解决呢?不要改数据库配置,不要改python-mysql的脚本。我实在没有办法了。只能高人指点迷津。 > > > 没用过mysql,不过一般数据库都可以设置客户端的字符编码,比如postgresql是: SET CLIENT_ENCODING TO '/value/'; 你查一下数据库文档看看
2007年01月09日 星期二 16:43
直接搜索肯定是会需要的。所以不能用base64编码的方式来做。我看了python-mysql的部分源代码(没有全看懂),不过发现为什么它非要取mysql默认的编码方式呢,搞不懂。PHP就简单多了,什么都不问,直接存进去就好了。原来是什么就是什么。 --- "Zoom.Quiet" <zoom.quiet在gmail.com>写道: > On 1/9/07, mikegaulmail-python在yahoo.com.cn > <mikegaulmail-python在yahoo.com.cn> wrote: > > > google了很久,发现针对utf8字符集的问题,没有很好的解决办法,不知道是不是我没有搜索到。 > > > > 我遇到的情况是这样的,我感觉好像好多人都是这样: > > > > > mysql3.x,用的是latin1字符集,而我现在要存储的数据是utf8的,又不能修改mysql的默认字符集,又不能象mysql4.1那样指定一个。怎么办呢? > > > > > 目前我的办法是修改了cursors.py中的一些内容,从而能够自己指定,但是,造成了无法使用execute()的第二个参数。 > > > > > 有没有什么比较好的办法解决呢?不要改数据库配置,不要改python-mysql的脚本。我实在没有办法了。只能高人指点迷津。 > > > 如果没有DB 直接搜索的要求的话, > 我的经验是使用base64 编码提交给DB! > 这样Python 这边正常使用utf-8 只是DB 中存储的都是 > base64 编码过后的latin1 字串, > 使用和提取或是显示时都没有问题的 > > > > > > > > > > > ___________________________________________________________ > > 抢注雅虎免费邮箱-3.5G容量,20M附件! > > http://cn.mail.yahoo.com > > _______________________________________________ > > python-chinese > > Post: send python-chinese在lists.python.cn > > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > > -- > '''Time is unimportant, only life important! > blog@ http://blog.zoomquiet.org/pyblosxom/ > wiki@ > http://wiki.woodpecker.org.cn/moin/ZoomQuiet > douban@ http://www.douban.com/people/zoomq/ > ____________________________________ > Please use OpenOffice.org to replace M$ office. > http://zh.openoffice.org > Please use 7-zip to replace WinRAR/WinZip. > http://7-zip.org/zh-cn/ > You can get the truely Freedom from software. > ''' > __________________________________________________ 赶快注册雅虎超大容量免费邮箱? http://cn.mail.yahoo.com __________________________________________________ 赶快注册雅虎超大容量免费邮箱? http://cn.mail.yahoo.com
2007年01月10日 星期三 09:05
昨天也遇到了,用这样的方式解决: import MySQLdb line = open('order_table_head.csv').read() line = line.rstrip() line = line.split(chr(9)) myDB = MySQLdb.Connect(host = "127.0.0.1", user = "user", passwd = "guest", db = "test") sql = """ update order_table set date_1 = %s, date_2 = %s, date_3 = %s, date_4 = %s, date_5 = %s, date_6 = %s, date_7 = %s where cnt = 1 """ cursor = myDB.cursor() cursor.execute(sql, line[8:15]) print str(cursor.rowcount) + " rows updated" myDB.close() On 1/9/07, mikegaulmail-python在yahoo.com.cn < mikegaulmail-python在yahoo.com.cn> wrote: > google了很久,发现针对utf8字符集的问题,没有很好的解决办法,不知道是不是我没有搜索到。 > > 我遇到的情况是这样的,我感觉好像好多人都是这样: > > mysql3.x,用的是latin1字符集,而我现在要存储的数据是utf8的,又不能修改mysql的默认字符集,又不能象mysql4.1那样指定一个 。怎么办呢? > > 目前我的办法是修改了cursors.py中的一些内容,从而能够自己指定,但是,造成了无法使用execute()的第二个参数。 > > 有没有什么比较好的办法解决呢?不要改数据库配置,不要改python-mysql的脚本。我实在没有办法了。只能高人指点迷津。 > > > > > > ___________________________________________________________ > 抢注雅虎免费邮箱-3.5G容量,20M附件! > http://cn.mail.yahoo.com > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -- Best Regards, Jetrix Chan ---- jetrixc在gmail.com -------------- 下一部分 -------------- 一个HTML附件被移除... URL: http://python.cn/pipermail/python-chinese/attachments/20070110/f152143f/attachment-0001.html
2007年01月10日 星期三 11:11
老兄这个好像只是正常的数据库连接和插入,和字符集没有什么关系啊。我们一般不都是这样做的吗? --- jetrix chan <jetrixc在gmail.com>写道: > 昨天也遇到了,用这样的方式解决: > > import MySQLdb > > line = open('order_table_head.csv').read() > line = line.rstrip() > line = line.split(chr(9)) > myDB = MySQLdb.Connect(host = "127.0.0.1", > user = "user", > passwd = "guest", > db = "test") > sql = """ > update order_table set > date_1 = %s, > date_2 = %s, > date_3 = %s, > date_4 = %s, > date_5 = %s, > date_6 = %s, > date_7 = %s > where cnt = 1 > """ > > cursor = myDB.cursor() > cursor.execute(sql, line[8:15]) > print str(cursor.rowcount) + " rows updated" > myDB.close() > > > > On 1/9/07, mikegaulmail-python在yahoo.com.cn < > mikegaulmail-python在yahoo.com.cn> wrote: > > > google了很久,发现针对utf8字符集的问题,没有很好的解决办法,不知道是不是我没有搜索到。 > > > > 我遇到的情况是这样的,我感觉好像好多人都是这样: > > > > > mysql3.x,用的是latin1字符集,而我现在要存储的数据是utf8的,又不能修改mysql的默认字符集,又不能象mysql4.1那样指定一个 > 。怎么办呢? > > > > > 目前我的办法是修改了cursors.py中的一些内容,从而能够自己指定,但是,造成了无法使用execute()的第二个参数。 > > > > > 有没有什么比较好的办法解决呢?不要改数据库配置,不要改python-mysql的脚本。我实在没有办法了。只能高人指点迷津。 > > > > > > > > > > > > > ___________________________________________________________ > > 抢注雅虎免费邮箱-3.5G容量,20M附件! > > http://cn.mail.yahoo.com > > _______________________________________________ > > python-chinese > > Post: send python-chinese在lists.python.cn > > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > > -- > Best Regards, > Jetrix Chan > ---- > jetrixc在gmail.com > __________________________________________________ 赶快注册雅虎超大容量免费邮箱? http://cn.mail.yahoo.com
Zeuux © 2025
京ICP备05028076号