将阿拉伯语unicode转换为字符串以在Python中存储并在Lua中读取数据

我有一个来自Python的Scrapy的var unicode并且我已经将其存储在MySQL中。 我已经尝试了所有网络上的方式,以将其编码为'utf-8'并用以下方式将其转换为字符串

unicode.encode('utf-8')

并使用Python文件中的此连接将其存储到db中

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

然后我使用以下代码从Lua中的MySQL读取数据

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库无法返回正确类型的阿拉伯字符串。

有人知道我该如何解决这个问题以及问题在哪里吗?在存储数据还是读取数据时发生了问题!

点赞
用户1766831
用户1766831

你尝试过使用 SET NAMES cp1256 声明 客户端 字节被编码为 CP1256 吗?

表格的 可以是 utf8 或者 cp1256,MySQL 会在 INSERTSELECT 期间进行转码。

2017-10-29 20:49:07