Skip to content

Commit

Permalink
Merge pull request #2767 from jumpserver/dev
Browse files Browse the repository at this point in the history
[Update] 解决csv导入导出的问题
  • Loading branch information
BaiJiangJie committed May 31, 2019
2 parents d2b1b19 + 9721b80 commit 1631c32
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
2 changes: 2 additions & 0 deletions apps/common/parsers/csv.py
Expand Up @@ -3,6 +3,7 @@

import json
import chardet
import codecs
import unicodecsv

from rest_framework.parsers import BaseParser
Expand Down Expand Up @@ -82,6 +83,7 @@ def parse(self, stream, media_type=None, parser_context=None):

try:
stream_data = stream.read()
stream_data = stream_data.strip(codecs.BOM_UTF8)
detect_result = chardet.detect(stream_data)
encoding = detect_result.get("encoding", "utf-8")
binary = self._universal_newlines(stream_data)
Expand Down
4 changes: 3 additions & 1 deletion apps/common/renders/csv.py
Expand Up @@ -2,6 +2,7 @@
#

import unicodecsv
import codecs
from datetime import datetime

from six import BytesIO
Expand Down Expand Up @@ -73,7 +74,8 @@ def render(self, data, media_type=None, renderer_context=None):
table = self._gen_table(data, header, labels)

csv_buffer = BytesIO()
csv_writer = unicodecsv.writer(csv_buffer, encoding='utf-8-sig')
csv_buffer.write(codecs.BOM_UTF8)
csv_writer = unicodecsv.writer(csv_buffer, encoding='utf-8')
for row in table:
csv_writer.writerow(row)

Expand Down

0 comments on commit 1631c32

Please sign in to comment.