【问题标题】:How to Convert MYSQL Latin-1 GEOMETRY field to UTF8 to get it to work with Django?如何将 MYSQL Latin-1 GEOMETRY 字段转换为 UTF8 以使其与 Django 一起使用?
【发布时间】:2017-01-22 03:13:21
【问题描述】:

尝试将字段投射回自身会引发以下错误。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    paths = models.PolygonField()

    工作就像一个魅力!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 2010-10-12
      • 2014-11-29
      • 2011-06-14
      • 2018-03-26
      • 2015-04-26
      • 1970-01-01
      相关资源
      最近更新 更多