У меня есть база данных, сохраняющая текст с Latin1_swedish_ci. Если я извлечь данные из этой базы данных PHP (кодирование в UTF-8), я получил правильный результатPython извлекает данные из базы данных, которая закодирована Latin1_swedish_ci в MySQL
Вот результат:
measured at Dungsha coraisland (20°42’N, 116°43’E) during the South China Sea Monsoon Experiment (May-June 1998) have been calibrated and compared with radiative transfer calculations for three clear-sky days.
Однако, когда я использую питон с разъемом MySQL, Я получил неправильный результат!
Вот результат:
Downward total solar fluxes measured at Dungsha coraisland (20¢X42¡¦N, 116¢X43¡¦E) during the South China Sea Monsoon Experiment (May-June 1998) have been calibrated and compared with radiative transfer calculations for three clear-sky days.
В настоящее время часть моих кодов выглядеть следующим образом:
cnx = mysql.connector.connect(host ='localhost',user='root', database='tao',charset='utf8',use_unicode='true')
f = io.open("upload.xml",'w',encoding='utf-8')
f.write(row[dic['abs']]+"\n")
Может кто-нибудь мне помочь? Мне нужно получить все данные из базы данных с помощью Python и вывести их в файл xml
Кроме того, мне интересно, почему я могу успешно получить правильный результат (20 ° 42'N, 116 ° 43'E) на эхо php? Я уже проверял данные с помощью mysql> select ..., и результат тоже такой, как 20 ¢ X42 ¡|N, 116 ¢ X43 ¡|E.
Хорошо, резервное копирование в секунду. remove 'sys.setdefaultencoding (" utf8 ")'. Измените свою базу данных так, как она была, установите ваш соединитель mysql в: 'connect (host = 'localhost', user = 'root', database = 'tao', charset = 'utf-8', use_unicode = True)'. С текстом из результата DB выполните: 'io.open ('output.txt', 'w', encoding = 'utf-8'). Write (result_message)'. Теперь вставьте то, что у вас есть. –
Это не сработало ... Я следую вашим методам. Поскольку система сказала мне, что я могу поместить unicode в write(), и, следовательно, я конвертирую все свои строки в unicode с помощью unicode(). Тем не менее, я проверил свой файл xml, и у меня все еще есть это, 20 ¢ X42 ¡|N, 116 ¢ X43¡|E, которого я не хотел ... –
Результаты из базы данных уже должны быть Unicode. Какую кодировку вы перешли в 'unicode()'? –