我想在Python中读取包含阿拉伯文本的JSON文件,但阿拉伯文本显示如下:
ط§ظ„ط³ظژط¹ظژط§ط¯ظژط©ظگ ظ„ظژظٹظگط³ظژطھظŒ ط§ظ„طظژطµظŒظˆظژظ„ظژ ط¹ظژظ„ظ‰ظژ
ظ…ط§ظژ ظ„ط§ظ†ظژظ…ظ„ظگظƒظژ ط¨ظژظ„ ظ‡ظگظٹظژ ط£ظ†ظژ ظ†ظژظپظ‡ظŒظ…ظژ
ظˆظژظ†ظگط¯ط±ظژظƒظژ ظ‚ظژظٹظگظ…ط©ظڈ ظ…ظژط§ظ†ظژظ…ظ„ظƒ
我怎样才能读出正确的阿拉伯字母?
import sys
non_bmp_map = dict.fromkeys(range(0x10000,sys.maxunicode + 1),0xfffd)
print(x.translate(non_bmp_map))
x是包含来自JSON文件的阿拉伯值的参数.
我期待得到这句话:但是我得到了ط§ظ“طظژظژط¹ظژط§ط¯ظژط©ظگظ”ظژظٹظگط³ظژطھظŒططظظ“طظژطμظŒ”ظژط¹ظژظ“ظ‰ظژظbutكككك …ط§ظژظ“ظظظظژظظظظژظظژظظژظظژظظژظظژظظژظظژظظژظظژظظژظظژظ£££ظظظظظظظظظ±±±±±±±±±…..ظ±± ظژط§ظ†ظژظ…ظ“ظƒ
最佳答案
您没有提到是否使用Python 3或2.在Python 3中,字符串是unicode,默认情况下.
如果您使用Python 2,请使用编解码器:
import codecs
f = codecs.open('unicode.rst',encoding='utf-8')
for line in f:
print repr(line)
但是,您的输入数据可能未正确编码.在这种情况下,您可以尝试使用ftfy
package.
ftfy实现了几种启发式方法来修复破坏/不一致的unicode编码.来自文档:
>>> from ftfy import fix_encoding
>>> print(fix_encoding("(ง'⌣')ง"))
(ง'⌣')ง
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。