我有一个var unicode来自python中的scrapy,我已将其存储在mysql中。我尝试了Web中的所有方法来编码为utf-8并将这种unicode转换为字符串

unicode.encode('utf-8')

并使用此连接存储到db到python文件中

db = MySQLdb.connect(host="",
                     user="",
                     passwd="",
                     db="",
                     cursorclass=MySQLdb.cursors.DictCursor,
                     charset='utf8',
                     init_command='SET NAMES UTF8'
                     )


然后我用这段代码从MySQL中的lua中读取数据

local env = assert (luasql.mysql())
local con = assert (env:connect("","",""))
local cursor,errorString = assert (con:execute("SELECT `id`,`arabic_name`,`arabic_lastname` FROM `user_info`"))
local row = cursor:fetch ({}, "a")


当我在while循环中打印行的结果时。这是返回我????字符串类型
我在python中尝试过这种方式,然后再次返回我????
但是在phpmyadmin中,我看到了具有正确字符串类型的列。
我想lua和python中的mysql库无法返回正确类型的阿拉伯字符串

有人知道我不能解决这个问题,哪里有问题?存储数据或读取数据!

最佳答案

您是否尝试过SET NAMES cp1256以声明客户端字节已编码为CP1256?

该表的列可以是utf8cp1256,而转码将由MySQL在INSERTSELECT期间完成。

关于python - 将阿拉伯语unicode转换为字符串以存储在python中的mysql上并在lua中读取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46994544/

10-11 03:06
查看更多