python - 如何将 MYSQL Latin-1 GEOMETRY 字段转换为 UTF8 以使其与 Django 一起使用?

标签 python mysql utf-8 geodjango iso-8859-1

尝试将字段强制转换回自身会引发以下错误。

UPDATE <table> SET geo_field = CONVERT(CAST(CONVERT(geo_field USING latin1) AS BINARY) USING utf8); 

[Err] 1416 - Cannot get geometry object from data you send to the GEOMETRY field

我正在尝试使用 django 1.9 来数据转储 json,但它在 latin-1 字符上一直令人窒息。

我正在使用 mysql.gis 后端。

尝试在 python 中使用原始光标也不起作用。

def convert_latin_uft8(badfields, table, host, user, passwd, db ):
    import MySQLdb
    con = MySQLdb.connect(host=host, user=user, passwd=passwd, db=db)
    cur = con.cursor()
    cur.execute("SELECT * FROM `{0}`;".format(table))
    for item in cur.fetchall():
        for field in badfields:
            data =item[field].decode('latin1').encode('utf8')
            print data

我被困住了。任何帮助将不胜感激。

最佳答案

paths 字段的模型类型设置不正确。

paths = models.PolygonField()

工作得非常有魅力!

关于python - 如何将 MYSQL Latin-1 GEOMETRY 字段转换为 UTF8 以使其与 Django 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41786932/

相关文章:

php - Laravel 5.2 - 如何从具有不同表格格式的外部数据库复制用户数据

mysql - MySQL语句中的ORDER BY分别为正数和负数

sql - 骗局 LIMIT 值

mysql - 哪个 mysql utf8 排序规则用于来自 latin1 的数据

python - 在 python 中循环 protobuf 枚举

python - 在 django 模板中解析和排序 csv 文件

python - Pandas 数据框绘制每列的回归曲线

python - tensorflow 将不同形状的张量相乘

encoding - 为什么 ASCII 和 ISO-8859-1 编码没有成为历史?

string - 为什么 utf-8 编码的 byte\xbd 在 for range 循环中被格式化为 unicode 代码点 fffd?