在 python 中转换为阿拉伯语文本
Conversion to arabic text in python
我在 mysql table 中有数据,字符集为 utf-8。我有一个 pyspark 脚本,它加载 mysql 数据并在 s3 存储桶中写入一个 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_arabic 编码然后我得到以下文本:
'أ»آ'أôقÄûأ»آ٤أ»آ١أôقÄöأôإ أ»آ)'
有没有办法从这些字符串中的任何一个生成阿拉伯语文本。
下面是代码
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()
对于 table 中的列,以下配置已设置:
字符集 utf8mb4 整理 utf8mb4_unicode_ci 默认 NULL
为以下配置的数据库设置:
引擎=InnoDB AUTO_INCREMENT=42627 默认字符集=latin1
提前致谢。
您平台上的 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()
我在 mysql table 中有数据,字符集为 utf-8。我有一个 pyspark 脚本,它加载 mysql 数据并在 s3 存储桶中写入一个 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_arabic 编码然后我得到以下文本:
'أ»آ'أôقÄûأ»آ٤أ»آ١أôقÄöأôإ أ»آ)'
有没有办法从这些字符串中的任何一个生成阿拉伯语文本。
下面是代码
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()
对于 table 中的列,以下配置已设置: 字符集 utf8mb4 整理 utf8mb4_unicode_ci 默认 NULL
为以下配置的数据库设置: 引擎=InnoDB AUTO_INCREMENT=42627 默认字符集=latin1
提前致谢。
您平台上的 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()