Gle*_*leb 9 python mysql unicode utf-8 character-encoding
我需要从我的python脚本调用MySQL存储过程.作为参数之一,我传递了一个unicode字符串(俄语),但是我得到了一个错误;
UnicodeEncodeError:'latin-1'编解码器无法编码位置0-1中的字符:序数不在范围内(256)
我的剧本:
self.db=MySQLdb.connect("localhost", "usr", "pass", "dbName")
self.cursor=self.db.cursor()
args=("?????-?? ?????") #this is string in russian
self.cursor.callproc('pr_MyProc', args)
self.cursor.execute('SELECT @_pr_MyProc_2') #getting result from sp
result=self.cursor.fetchone()
self.db.commit()
Run Code Online (Sandbox Code Playgroud)
我已经读过设置charset='utf8'shuld解决了这个问题,但是当我使用字符串时:
self.db=MySQLdb.connect("localhost", "usr", "pass", "dbName", charset='utf8')
Run Code Online (Sandbox Code Playgroud)
这给了我另一个错误;
UnicodeEncodeError:'utf-8'编解码器无法对位置20中的字符'\ udcd1'进行编码:不允许代理
我也试图设置参数use_unicode=True,这是行不通的.
更多要检查的内容:http: //mysql.rjweb.org/doc.php/charcoll#python
可能的项目:
# -*- coding: utf-8 -*-- 启动代码文件(对于代码中的文字)你能提取HEX吗? ?????-?? ?????应该是这个在utf8:D0BA D0B0 D0BA D0BE D0B9 2D D182 D0BE D182 20 D0B5 D0BA D181 D182