【问题标题】:Python/Mysql Russian INSERTPython/Mysql 俄语插入
【发布时间】:2012-12-04 20:57:33
【问题描述】:

我在尝试用俄语编写INSERT 时遇到了以下错误:

sql =   """SELECT provider FROM main_app_provider WHERE provider LIKE %s"""
cursor.execute(sql, args)

[ print statement ]
SELECT provider FROM main_app_provider WHERE provider LIKE Централ%
  ...
  File "/Library/Python/2.7/site-packages/MySQLdb/connections.py", line 202, in unicode_literal
return db.literal(u.encode(unicode_literal.charset))
UnicodeEncodeError: 'latin-1' codec can't encode characters 
in position 0-6: ordinal not in range(256)

我将如何解决这个问题?

【问题讨论】:

  • 你的表格列的字符集是什么?它在 DB 中的表示是否正确?
  • 在 '%s' 周围加上单引号

标签: python mysql cyrillic


【解决方案1】:

MySQLdb 默认使用 latin-1,你必须设置你想要它使用的字符集。 (看这个问题:python encoding problem with mysqldb

我在创建连接时这样做,例如

conn=MySQLdb.connect(hostname, username, password, database, charset='utf8')

【讨论】:

  • 非常感谢,就是这样。
猜你喜欢
  • 1970-01-01
  • 2018-06-11
  • 2011-05-23
  • 2020-05-20
  • 1970-01-01
  • 2015-06-17
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
相关资源
最近更新 更多