SQLObject加MySQL的 utf-8解决之道
软件技术

lhwork 发表于 2007-2-1 21:17:57

SQLObject对utf-8的支持一直为很多人所诟病,MySQL对utf-8的支持
在mysqlconnection.py中可以看到SQLObject连接MySQL时的一些细节,
__init__中支持额外的几个参数

  1. self.need_unicode = False
  2. for key in ("unix_socket", "init_command",
  3. "read_default_file", "read_default_group"):
  4. if key in kw:
  5. self.kw[key] = col.popKey(kw, key)
  6. for key in ("connect_timeout", "compress", "named_pipe", "use_unicode",
  7. "client_flag", "local_infile"):
  8. if key in kw:
  9. self.kw[key] = int(col.popKey(kw, key))
  10. if "charset" in kw:
  11. self.dbEncoding = self.kw["charset"] = col.popKey(kw, "charset")
  12. else:
  13. self.dbEncoding = None
  14. if "sqlobject_encoding" in kw:
  15. self.encoding = col.popKey(kw, "sqlobject_encoding")
  16. else:
  17. self.encoding = 'ascii'
  18. DBAPI.__init__(self, **kw)

其中的read_default_file和sqlobject_encoding会对SQLObject返回结果的编码产生
影响,
sqlobject_encoding 指明返回对象的编码
read_default_file 则指明连接时读取的客户端配置文件,不同平台该文件名字有可能
不一样,比如my.cnf或者my.ini
也就是说,使用MySQL时,需要支持utf-8的话,需要给连接字符串增加如下额外的参数:
sqlobject_encoding=utf-8&read_default_file=my.cnf

合起来便是:

  1. "mysql://username:password@host/db_name?sqlobject_encoding=utf-8&read_default_file=my.cnf"

之后SQLObject便会很好的处理来自MySQL的utf-8字符串了
当然不能忘了在my.ini中添加默认链接所使用的字符编码:

转载于:https://blog.51cto.com/axlrose/1294542

[转]SQLObject加MySQL的 utf-8解决之道相关推荐

  1. Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道

    Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Target Se ...

  2. MySQL导入中文乱码解决之道

    数据库中文乱码一直是烦人的问题,网上解决方法很多,但各有出入,而且有人灵有人不灵.对于MySQL,我的解决方法如下: 1)改MySQL配置: 如:D:\Program Files\MySQL\MySQ ...

  3. Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决

    2019独角兽企业重金招聘Python工程师标准>>> Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇[zz] 关键字:Struts H ...

  4. PHP+MYSQL 出现乱码的解决方法

    使用PHP+MYSQL时遇到过字符乱问题 解决方法 在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES G ...

  5. mysql 执行计划 改变_数据量增加导致mysql执行计划改变解决_MySQL

    bitsCN.com 数据量增加导致mysql执行计划改变解决 收到运维同学电话,mysql服务器连接数满了,登录服务器查看,确实满了,好吧,首先增加连接数到2500,暂时提供对外服务.连接继续升高, ...

  6. apmserv5.2.6 mysql启动失败_win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法...

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\ 2.去掉 ...

  7. MySQL RR隔离级别解决幻读问题?

    首先,讲mysql的隔离级别之前需要复习一下事务的四个特性 (注:mysql存储引擎InnoDB)(待完善) 事务的四个特性(ACID): 原子性(Atomicity) 一致性(Consistency ...

  8. linux直接运行程序加载动态库失败,扣丁学堂Linux培训详解程序运行时加载动态库失败解决方法...

    今天扣丁学堂Linux培训老师给大家介绍一下关于Linux程序运行时加载动态库失败的解决方法,希望对同学们学习有所帮助,下面我们一起来看一下吧. Linux下不能加载动态库问题 当出现下边异常情况 . ...

  9. win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\  2.去 ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:人脸识别
  2. LVM学习之LVM基础
  3. 三星mzvlb1t0hblr是什么固态_三星T7 Touch 1TB移动固态硬盘评测:新奇又安全的加密方式普及?...
  4. Jobs added with no trigger must be durable
  5. Mac下好用的批量文件扩展名修改工具
  6. css和JavaScript实现的星云动画效果
  7. 安装jenkins时出现 No such plugin: cloudbees-folder的解决办法
  8. PostCSS 以及 cssnext语法
  9. PolarDB for PostgreSQL 开源路线图
  10. leetcode - 1024. 视频拼接
  11. 通过Redis的Pub/Sub实现对服务器群的监控管理
  12. C# A potentially dangerous 问题解决
  13. 构建入门Restful Web服务
  14. Ping32文档加密软件有哪些特点
  15. 打印图片一直显示连接传真服务器,打印机打印时显示传真怎么办
  16. 转置矩阵(Transpose of a matrix)
  17. 德鲁克:卓有成效管理者的5项基本能力
  18. 什么是测试场景标准库?
  19. 手环的PCBA部分,主要包括一颗集成BLE功能的MCU,以及由MCU控制的各种外设
  20. SQL 压力测试实战

热门文章

  1. 开源在线阅读技术资源
  2. 【Hadoop】Hadoop MR异常处理
  3. 华为认证网络互连专家-HCIE-RS模拟试卷
  4. 使用php分页类实现简单分类
  5. 对 Azure 虚拟网络网关的改进
  6. 浅谈ASP.net中的DataSet对象
  7. BTC 再陷横荒之力,BCH 或成破局良器
  8. 百度地图 osm地图 leaflet echarts webapck的组合使用时的踩坑记录
  9. 基于微软企业库的AOP组件(含源码)
  10. Node.js进击基础一(5-11事件模块)