回答編集履歴
4
日本語がいまいちなのを変更しました。
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
興味を持ち私も(環境は
|
1
|
+
興味を持ち私も(環境は kiwibird さんと異なり macOS ですが)ファイル名が日本語のファイルで試してみました。結果、 kiwibird さんと同様の現象を確認することができました。
|
2
2
|
|
3
3
|
結論としては、 can110 さんらがおっしゃられているとおり UTF-8 で表現されているの(=適切なエスケープ)ではないかと思います。
|
4
4
|
|
3
タイポを修正しました: non-ascci → non-ascii 。
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
ここではエンコーダとして `django.core.serializers.json.DjangoJSONEncoder` という Django 独自のエンコーダが使われますが、これは今回の問題とは関係が無いので掘り下げずにおいておきます。
|
10
10
|
|
11
|
-
`json.dumps()` のドキュメントを見ると、 `json.dumps()` はデフォルトで non-
|
11
|
+
`json.dumps()` のドキュメントを見ると、 `json.dumps()` はデフォルトで non-ascii 文字を ascii 文字にエスケープする挙動になっているとのことですので、これがおおもとの原因ではないかと思います。
|
12
12
|
|
13
13
|
- https://docs.python.org/3/library/json.html#character-encodings
|
14
14
|
|
2
2 つの抜粋が 1 つの blockquote に入ってしまう問題を解消しました。
answer
CHANGED
@@ -14,8 +14,12 @@
|
|
14
14
|
|
15
15
|
以下、該当する箇所 2 箇所の抜粋です:
|
16
16
|
|
17
|
+
抜粋1:
|
18
|
+
|
17
19
|
> If ensure_ascii is true (the default), the output is guaranteed to have all incoming non-ASCII characters escaped. If ensure_ascii is false, these characters will be output as-is.
|
18
20
|
|
21
|
+
抜粋2:
|
22
|
+
|
19
23
|
> The RFC requires that JSON be represented using either UTF-8, UTF-16, or UTF-32, with UTF-8 being the recommended default for maximum interoperability.
|
20
24
|
>
|
21
25
|
> As permitted, though not required, by the RFC, this module’s serializer sets ensure_ascii=True by default, thus escaping the output so that the resulting strings only contain ASCII characters.
|
1
JSON 化 → JSON シリアライズ に表現を変更しました。
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
結論としては、 can110 さんらがおっしゃられているとおり UTF-8 で表現されているの(=適切なエスケープ)ではないかと思います。
|
4
4
|
|
5
|
-
念のため、なぜこの挙動になるかを確認するために `JsonResponse` のコードを見てみました。 `JsonResponse` の `__init__()` の中で、第 1 引数( kiwibird さんのコードだと `result` )が標準ライブラリの `json.dumps()` を使って JSON
|
5
|
+
念のため、なぜこの挙動になるかを確認するために `JsonResponse` のコードを見てみました。 `JsonResponse` の `__init__()` の中で、第 1 引数( kiwibird さんのコードだと `result` )が標準ライブラリの `json.dumps()` を使って JSON シリアライズされています。
|
6
6
|
|
7
7
|
- https://github.com/django/django/blob/2.1.3/django/http/response.py#L558
|
8
8
|
|