本文へスキップ
hdknr blog
戻る

DRF: CSVを送信するするときに WindowsだとBOMをつけないとExcelで文字化けする問題

BOM(byte order mark)

rest_framework_csv

viewset: get_renderer_context をオーバーライドする

    def get_renderer_context(self):
        """(override)"""
        context = super().get_renderer_context()
        # ここで、以下の条件の時に utf-8-sigにセット
        # 1) text/csv を求めている
        # 2) utf-8 でエンコードが指定されている(デフォルト)

        if self.request.META.get('HTTP_ACCEPT', '').startswith('text/csv'):
            context['encoding'] = 'utf-8-sig'

        return context

記事



前の記事
XCode: A valid provisioning profile for this executable was not found
次の記事
Radio