Skip to main content
 首页 » 编程设计

python之使用 gzip 启用 KMZ 输出

2025年05月04日13myhome

当我尝试为输出启用 gzip 时,出现以下错误:

Traceback (most recent call last): 
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 634, in __call__ 
    handler.get(*groups) 
  File "/base/data/home/apps/my-app-ip/django2.349712625627523096/main.py", line 2246, in get 
    self.response.out.write(compressBuf(output)) 
  File "/base/data/home/apps/my-app-ip/django2.349712625627523096/main.py", line 1618, in compressBuf 
    zfile.write(buf) 
  File "/base/python_runtime/python_dist/lib/python2.5/gzip.py", line 204, in write 
    self.crc = zlib.crc32(data, self.crc) 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 1075: ordinal not in range(128) 

我的代码是

def compressBuf(buf): 
    zbuf = StringIO.StringIO() 
    zfile = gzip.GzipFile(None, 'wb', 9, zbuf) 
    zfile.write(buf) 
    zfile.close() 
    return zbuf.getvalue() 

你能告诉我我做错了什么吗? 谢谢

请您参考如下方法:

看来您需要将编码设置为 utf-8。看这个question .