回答編集履歴
4
訂正
test
CHANGED
@@ -64,7 +64,7 @@
|
|
64
64
|
|
65
65
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-08-11/c7832102-965a-427f-9cb5-7ac0d260471f.jpeg)
|
66
66
|
|
67
|
-
なお、上の方法でエスケープしないようにできるのは BMP(Basic Multilingual Plane・・・U+0000 から U+FFFF の範囲)の文字だけです。BMP の文字でもエスケープできないものもあります。詳しくは以下の記事を見てください。
|
67
|
+
なお、上の方法でエスケープしないようにできるのは BMP(Basic Multilingual Plane・・・U+0000 から U+FFFF の範囲)の文字だけです。BMP の文字でもエスケープ解除できないものもあります。詳しくは以下の記事を見てください。
|
68
68
|
|
69
69
|
ASP.NET Core MVC の Unicode Escape Sequence (UES)
|
70
70
|
http://surferonwww.info/BlogEngine/post/2020/03/11/aspnet-core-mvc-controller-json-method-replaces-non-ascii-characters-with-5cuxxxx.aspx
|
3
追記&訂正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
System.Text.Json の JsonSerializer が使えるのは .NET Core 3.0 以降で、それより前のフレームワーク (.NET Framework 4.8 を含む) では NuGet からのインストールが必要だそうですが、それはやりましたか?
|
2
2
|
|
3
|
-
質問者さんのコードをコピペして試してみましたが、System.Text.Json を NuGet からインストールしてあれば少なく
|
3
|
+
質問者さんのコードをコピペして試してみましたが、System.Text.Json を NuGet からインストールしてあれば少なくとも質問に書いてあるような例外は出ません。
|
4
4
|
|
5
5
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-08-11/a9a14bbd-ab84-405a-b028-fd2dea3d76bc.jpeg)
|
6
6
|
|
2
追記
test
CHANGED
@@ -42,3 +42,30 @@
|
|
42
42
|
結果は:
|
43
43
|
|
44
44
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-08-11/59111f0b-1efd-49f1-afd0-0f10ceb8bd01.jpeg)
|
45
|
+
|
46
|
+
---
|
47
|
+
|
48
|
+
**【追記】**
|
49
|
+
|
50
|
+
上の結果で日本語の部分が \uxxxx という形で表されるのは、シリアライザで Unicode Escape Sequence (以下 UES と書きます) という形にエスケープされた結果です。
|
51
|
+
|
52
|
+
セキュリティ対策のようで、そのままでもその JSON 文字列を使う側は問題なく解釈してくれると思いますが、どうしても読めないとイヤだという場合は以下のように JsonSerializerOptions の設定でエスケープしないようにできます。
|
53
|
+
|
54
|
+
```
|
55
|
+
var option = new JsonSerializerOptions
|
56
|
+
{
|
57
|
+
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
|
58
|
+
};
|
59
|
+
|
60
|
+
var json_str = JsonSerializer.Serialize(gil, option);
|
61
|
+
```
|
62
|
+
|
63
|
+
結果は:
|
64
|
+
|
65
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-08-11/c7832102-965a-427f-9cb5-7ac0d260471f.jpeg)
|
66
|
+
|
67
|
+
なお、上の方法でエスケープしないようにできるのは BMP(Basic Multilingual Plane・・・U+0000 から U+FFFF の範囲)の文字だけです。BMP の文字でもエスケープできないものもあります。詳しくは以下の記事を見てください。
|
68
|
+
|
69
|
+
ASP.NET Core MVC の Unicode Escape Sequence (UES)
|
70
|
+
http://surferonwww.info/BlogEngine/post/2020/03/11/aspnet-core-mvc-controller-json-method-replaces-non-ascii-characters-with-5cuxxxx.aspx
|
71
|
+
|
1
訂正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
System.Text.Json の JsonSerializer が使えるのは .NET Core 3.0 以降で、それより前のフレームワーク (.NET Framework 4.8 を含む) では NuGet からのインストールが必要だそうですが、それはやりましたか?
|
2
2
|
|
3
|
-
質問者
|
3
|
+
質問者さんのコードをコピペして試してみましたが、System.Text.Json を NuGet からインストールしてあれば少なくのも質問に書いてあるような例外は出ません。
|
4
4
|
|
5
5
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-08-11/a9a14bbd-ab84-405a-b028-fd2dea3d76bc.jpeg)
|
6
6
|
|