Why does Python/gpx save data as Latin1? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Why does Python/gpx save data as Latin1? (/thread-22413.html) |
Why does Python/gpx save data as Latin1? - Winfried - Nov-11-2019 Hello, For some reason, the input data that are in UTF8 in SQLite end up as Latin1 in the output file: import gpxpy.gpx import sqlite3 gpx = gpxpy.gpx.GPX() con = sqlite3.connect('input.sqlite') con.row_factory = sqlite3.Row cur = con.cursor() cur.execute("SELECT name,latitude,longitude FROM table1"); results = cur.fetchall() for row in results: w1 = gpxpy.gpx.GPXWaypoint(row["latitude"],row["longitude"]) w1.name = row["name"] gpx.waypoints.append(w1) print("Waypoint: ",w1.name) with open("map.gpx", "w") as f: f.write( gpx.to_xml())I'm pretty sure data in SQLIte are in UTF8 because a run of ".output test.csv ; SELECT …" shows data in UTF8, so it looks like the issue lies in the code above. Am I missing a switch somewhere? Thank you. RE: Why does Python/gpx save data as Latin1? - perfringo - Nov-12-2019 From Python built-in help ( >>> help('open') ):Quote:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opene One can check (and set) default encoding in locale: import locale locale.getlocale()However, more robust is to specify encoding while writing into file: with open("map.gpx", "w", encoding='UTF-8') as f: RE: Why does Python/gpx save data as Latin1? - Winfried - Nov-12-2019 You nailed it. Thank you very much. |