superset导出乱码及导出报错问题的解决方法

superset 导出CSV 默认编码为utf-8,在导出包含中文的文本CSV会有乱码问题。

网上很多方法都是通过修改 superset/config.py,将UTF-8修改成GBK 来解决的 ,但是再实际情况中如果某个字段存在特殊字符,比如微信暱称的字段很有可能存在各种“表情符号”,这就属于一种特殊字符,那么我们在导出csv的时候就会报错,报错信息类似如下:

gbk codes can't encode character '\\xa0' illegal multibyte sequence

在GBK的编码中是无法正常转义的,所以建议大家不要修改成GBK编码,而是直接修改编码格式为“utf-8-sig”,具体方法如下:

  • 修改 superset/config.py,将UTF-8修改成GBK
CSV_EXPORT = {
'encoding': 'utf-8-sig',
}
  • 修改superset/views/core.py
csv = df.to_csv(index=False, **config.get('CSV_EXPORT'))
 
response = CsvResponse(csv, mimetype='text/csv')

修改后重启即可。

​​​​​​​

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章