在python中转换为阿拉伯语文本

col17t5w  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(319)

我在mysql表中有charset-utf-8的数据。我有一个pyspark脚本,它加载mysql数据并在s3 bucket中编写一个parquet文件。从mysql获取数据时,我获取的数据格式如下:

'الشرقية'

然后我将其转换为utf-8编码,得到以下unicode字符串:

'\xc3\x98\xc2\xa7\xc3\x99\xe2\x80\x9e\xc3\x98\xc2\xb4\xc3\x98\xc2\xb1\xc3\x99\xe2\x80\x9a\xc3\x99\xc5\xa0\xc3\x98\xc2\xa9'

之后,我将其解码为mac\ U阿拉伯语编码,然后我得到以下文本:

'أ»آ'أôقÄûأ»آ٤أ»آ١أôقÄöأôإ أ»آ)'

有没有办法从这些字符串中的任何一个生成阿拉伯语文本。
下面是代码

sqlContext = SQLContext(sc)
df = sqlContext.read.format("jdbc").options(
                                       url="jdbc:mysql://localhost/db_name",
                                       driver="com.mysql.jdbc.Driver",
                                       dbtable="table",
                                       user="root",
                                       password="root"
                                      ).load()

df.show()

对于下表中的列,config设置为:字符集utf8mb4 collate utf8mb4\u unicode\u ci default null
对于下面的数据库,设置config:engine=innodb auto\u increment=42627 default charset=1
提前谢谢。

tzxcd3kk

tzxcd3kk1#

您平台上的jdbc驱动程序版本默认不使用utf-8编码。如上所述,请尝试显式地将编码传递给驱动程序:

df = sqlContext.read.format("jdbc").options(
    url="jdbc:mysql://localhost/db_name?characterEncoding=utf8",
    driver="com.mysql.jdbc.Driver",
    dbtable="table",
    user="root",
    password="root").load()

相关问题