从JSON文件中读取阿拉伯语

时间:2016-12-13 07:18:45

标签: python json

我想在Python中读取包含阿拉伯语文本的JSON文件,但阿拉伯语文本显示为:

ط§ظ„ط³ظژط¹ظژط§ط¯ظژط©ظگ ظ„ظژظٹظگط³ظژطھظŒ ط§ظ„ط­ظژطµظŒظˆظژظ„ظژ ط¹ظژظ„ظ‰ظژ 
ظ…ط§ظژ ظ„ط§ظ†ظژظ…ظ„ظگظƒظژ ط¨ظژظ„ ظ‡ظگظٹظژ ط£ظ†ظژ ظ†ظژظپظ‡ظŒظ…ظژ 
ظˆظژظ†ظگط¯ط±ظژظƒظژ ظ‚ظژظٹظگظ…ط©ظڈ ظ…ظژط§ظ†ظژظ…ظ„ظƒ 

如何阅读正确的阿拉伯字母?

import sys
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
print(x.translate(non_bmp_map))

x是包含来自JSON文件的阿拉伯语值的参数。 我期待得到这句话:但是我得到了ط§ظ“طظژظژط¹ظژط§ط¯ظژط©ظگظ”ظژظٹظگط³ظژطھظŒططظظ“طظژطμظŒ”ظژط¹ظژظ“ظ‰ظژظbutكك ...ط§ظژظ“ظظظظژظظظظژظظژظظژظظژظظژظظژظظژظظژظظژظظژظظژظظژظ£££ظظظظظظظظظ±±±±±±±±±.....ظ±± ظژط§ظ†ظژظ...ظ“ظƒ

1 个答案:

答案 0 :(得分:3)

你没有提到过你是使用Python 3还是2.在Python 3中,字符串是unicode,默认情况下。

如果您使用Python 2,请使用codec

import codecs
f = codecs.open('unicode.rst', encoding='utf-8')
for line in f:
    print repr(line)

参考:Unicode How-to

但是,您的输入数据可能未正确编码。在这种情况下,您可以尝试使用ftfy package

ftfy实现了几种启发式方法来修复损坏/不一致的unicode编码。来自文档:

>>> from ftfy import fix_encoding
>>> print(fix_encoding("(ง'⌣')ง"))
(ง'⌣')ง