回答編集履歴

3

追記

2022/01/28 05:17

投稿

退会済みユーザー
test CHANGED
@@ -27,3 +27,9 @@
27
27
  下の画像を見てください。JavaScript のコードの変数 json に代入したのは質問にある JSON 文字列そのものです。日本語の部分はエスケープされたままになってます。それを JSON.parse で JavaScript オブジェクト(連想配列)にデシリアライズすると "book_author": "\u3042\u3060\u3061\u305f\u304f\u3084" はエスケープが解除されて画像の赤枠で囲ったように "あだちたくや" となっているのが分かりますか?
28
28
 
29
29
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-28/8e21f9e8-7b6e-41ea-b6d0-ac8e49e1e8d9.jpeg)
30
+
31
+ 質問の JavaScript のコードにある、
32
+
33
+ > .done(function(data)
34
+
35
+ の data には、ajax での要求の結果期待通り JSON 文字列の応答が返ってきていれば、それをデシリアライズした JavaScript オブジェクト(画像のコードで言うと deserialised)が渡されているはずですので確認してみてください。

2

追記

2022/01/28 05:10

投稿

退会済みユーザー
test CHANGED
@@ -13,3 +13,17 @@
13
13
 
14
14
  ASP.NET Core MVC の Unicode Escape Sequence (UES)
15
15
  http://surferonwww.info/BlogEngine/post/2020/03/11/aspnet-core-mvc-controller-json-method-replaces-non-ascii-characters-with-5cuxxxx.aspx
16
+
17
+ ---
18
+
19
+ **追記2**
20
+
21
+ 下のコメントに、
22
+
23
+ > そのままデシリアライズしてエンコード前の文字列を取得できるはずで、UES を外す必要はないと思いますけど?
24
+
25
+ と書きましたけど具体的にどうなるかを以下にに追記しておきます。
26
+
27
+ 下の画像を見てください。JavaScript のコードの変数 json に代入したのは質問にある JSON 文字列そのものです。日本語の部分はエスケープされたままになってます。それを JSON.parse で JavaScript オブジェクト(連想配列)にデシリアライズすると "book_author": "\u3042\u3060\u3061\u305f\u304f\u3084" はエスケープが解除されて画像の赤枠で囲ったように "あだちたくや" となっているのが分かりますか?
28
+
29
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-28/8e21f9e8-7b6e-41ea-b6d0-ac8e49e1e8d9.jpeg)

1

訂正&追記

2022/01/28 02:30

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,15 @@
1
1
  > UTF-8でコーディングしているのに"U3042"みたいな感じでUnicode形式になってしまう。
2
2
  > "book_author": "\u3042\u3060\u3061\u305f\u304f\u3084"
3
3
 
4
- それは nicode Escape Sequence (UES) の結果だと思います。
4
+ それは Unicode Escape Sequence (UES) の結果だと思います。
5
5
 
6
6
  UES というのは \uxxxx という形で表される Unicode 文字で、xxxx はその文字の Unicode コードになります。UES となる理由はシリアライザでエスケープ処理が行われているからで、フレームワークがそういう仕様になっているからだと思います。
7
+
8
+ ---
9
+
10
+ **追記**
11
+
12
+ ちなみに ASP.NET Core MVC (Core v3.1 以降)ではデフォルトで UES が適用されます。興味があれば以下の記事を見てください。
13
+
14
+ ASP.NET Core MVC の Unicode Escape Sequence (UES)
15
+ http://surferonwww.info/BlogEngine/post/2020/03/11/aspnet-core-mvc-controller-json-method-replaces-non-ascii-characters-with-5cuxxxx.aspx