\

Pythonでデータとして日本語を扱う場合、デフォルトはUTF-8になります。しかし、JSON形式にしたデータを出力すると、Unicodeエスケープされたバイト列になってしまいます。これはファイルに書いた場合も同様で、Pythonから書き込んだファイルをエディターで開いても、日本語では表示されません。

この問題を解決するためには、Pythonのjson.dump関数を使用し、ensure_ascii=Falseを指定することで、UTF-8のまま書き込むことができます。

with open('test.json', 'w') as f:
    json.dump(jsondate, f, indent=2, ensure_ascii=False)

ただし、この方法では、サーバーにCGIでアップロードすると、そこでUnicodeになってしまうため、今回はこれだけでは足りません。そのため、意識してUTF-8とUnicodeをデコード/エンコードしながら使わなければなりません。

例えば、UTF-8の日本語をUnicodeにするには以下のようにエンコードします。

savename ='日本語の文字列'
uni_b_savename = savename.encode('unicode-escape')

これをUTF-8に戻すには、以下のようにデコードします。

uni_b_savename.decode('unicode-escape')

以上のように、PythonでJSONと日本語の文字コードを扱う際には、UnicodeエスケープとUTF-8の変換を意識する必要があります。これにより、Pythonで生成したJSONデータを他のプラットフォームやサーバーで適切に扱うことができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です