python2.7 mysql阿拉伯字符显示如\ xd9 \ x88 \ xd9 \ x88 \ xd8 \ xac \ xd8 \ xaf \ xd8 \ xa7 \ xd9 \ x84 \

时间:2017-02-10 16:35:20

标签: python mysql encode arabic

我收到脚本时遇到问题

from bs4 import BeautifulSoup
import html
import chardet
import time
start_time = time.time()
import MySQLdb
import MySQLdb.converters as conv
import MySQLdb.constants as const
import datetime
# connect
db = MySQLdb.connect(host="localhost", user="985632", use_unicode=True, passwd="azerty",
db="bog_ch" , charset='utf8', init_command='SET NAMES UTF8')
cursor = db.cursor()

# execute SQL select statement
query = "SELECT * FROM articles Limit 5"
cursor.execute(query)
a = []
# commit your changes
numrows = int(cursor.rowcount)
rows = [x for x in cursor ]
for i in rows:
    for b in i:
        a.append(b)
print a         

我得到了这个

</span></p>\r\n<p class="a" style="text-align: right;" dir="RTL"><span style="font-size: 21px;" lang="AR-SY">\u0648\u0648\u062c\u062f \u0627\u0644\u0628\u0627\u062d\u062b\u0627\u0646 \u0623\u0646 &ldquo;\u0641\u0627\u064a\u0628\u0631&rdquo; \u062a\u0642\u0648\u0645 \u0628\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u062e\u0648\u0627\u062f\u0645\u0647\u0627 \u0644\u0645\u062f\u0629 \u0623\u0633\u0628\u0648\u0639 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644. \u0648\u0623\u0636\u0627\u0641 \u0623\u062d\u062f\u0647\u0645\u0627 \u0623\u0646\u0647 \u0644\u0627 \u064a\u0648\u062c\u062f \u0623\u0633\u0644\u0648\u0628 \u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0633\u062a\u062e\u062f\u0645\u060c \u0645\u0627 \u064a\u0639\u0646\u064a \u0623\u0646 \u0628\u0625\u0645\u0643\u0627\u0646 \u0627\u0644\u062c\u0645\u064a\u0639 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0631\u0648\u0627\u0628\u0637 \u0648\u0627\u0644\u0646\u0638\u0631 \u0625\u0644\u0649 \u062a\u0644\u0643 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u064a\u0647\u0627 \u0648\u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0645\u0627 \u064a\u0634\u0627\u0621.</span></p>', u'1', u'', None, datetime.datetime(2015, 6, 9, 0, 36, 30), 9L, 0L, 0L, 1L, u'viber.png', u'User GEEKS', 1L, u'', u'', u'']

我想将其转换为阿拉伯语,如

أفضلالمهووسينايفونسامسونغغوغل7

2 个答案:

答案 0 :(得分:2)

您正在打印列表a。这不会起作用,无论如何你可能不想将所有额外的内容输出到你的网页上(9L, 0L, 0L, 1L, u'viber.png', ......等等)

如果要显示实际的Unicode字符,只需打印字符串元素。

例如:

>>> my_list = [u'\u0648\u0648\u062c\u062f \u0627\u0644\u0628\u0627' \
               u'\u062d\u062b\u0627\u0646', 123]
>>> print my_list        # <- this won't work
[u'\u0648\u0648\u062c\u062f \u0627\u0644\u0628\u0627\u062d\u062b\u0627\u0646', 123]
>>> print my_list[0]     # <- but this will
ووجد الباحثان

答案 1 :(得分:0)

这看起来像是Unicode显示问题。首先,确保您使用的IDE支持阿拉伯字符(据我所知,Spyder是最好的)。其次,在Python 3.5中尝试这一点,它可以更有效地处理Unicode。