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')

修改後重啓即可。

​​​​​​​

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