我在MSQL数据库中有一个表,其中一个列中包含阿拉伯语文本,但是当我将其导出到csv时,它正在转换为其他格式,例如
Ø§ØØªÙاÙ
Run Code Online (Sandbox Code Playgroud)
我想要导出我的阿拉伯语文本.我认为编码存在问题.请帮忙.
我有一个阿拉伯字符串说
txt = u'Arabic (\u0627\u0644\u0637\u064a\u0631\u0627\u0646)'
Run Code Online (Sandbox Code Playgroud)
我想把这段阿拉伯文文本转换成mySql数据库。我尝试使用
txt = smart_str(txt)
Run Code Online (Sandbox Code Playgroud)
或者
txt = text.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)
这两个都不起作用,因为它们将字符串转换为
u'Arabic (\xd8\xa7\xd9\x84\xd8\xb7\xd9\x8a\xd8\xb1\xd8\xa7\xd9\x86)'
Run Code Online (Sandbox Code Playgroud)
另外我的数据库字符集已经设置为utf-8
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
因此,由于这个新的 unicodes,我的数据库正在显示与编码文本相关的字符。请帮忙。我希望保留我的阿拉伯文本。
另外,从 MySQL 数据库快速导出此阿拉伯文文本是否会将相同的阿拉伯文文本写入文件中,还是会再次将其转换回 unicode?
我用下面的代码插入
cur.execute("INSERT INTO tab1(id, username, text, created_at) VALUES (%s, %s, %s, %s)", (smart_str(id), smart_str(user_name), smart_str(text), date))
Run Code Online (Sandbox Code Playgroud)
在此之前,当我没有使用 smart_str 时,它会抛出一个错误,表示仅允许“latin-1”。