JsonSerializer.Serialize는 기본적으로 ASCII가 아닌 문자를 모두 이스케이프합니다. 즉, ASCII가 아닌 문자를 \uxxxx로 바꾸며, 여기서 xxxx는 문자의 유니코드 코드입니다. 하나 이상의 언어 문자 세트를 이스케이프하지 않고 직렬화하려면 System.Text.Encodings.Web.JavaScriptEncoder 인스턴스를 만들 때 유니코드 범위를 지정합니다.
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
var options = new JsonSerializerOptions
{
//문자 인코딩을 사용자 지정, BasicLatin : 로마자 기본, HangulSyllables : 한글 음절
Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.HangulSyllables),
};
var dic = new Dictionary<string, string>()
{
{ "Name", "진우" },
{ "Favoritefodd", "소고기" }
};
string jsonString = JsonSerializer.Serialize(dic, options);
Console.WriteLine(jsonString);
//output :
{"Name":"진우","Favoritefodd":"소고기"}
var options = new JsonSerializerOptions
{
//UnicodeRanges.All : Gets a range that consists of the entire Basic Multilingual Plane (BMP), from U+0000 to U+FFFF).
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
};
var dic = new Dictionary<string, string>()
{
{ "Name", "진우" },
{ "Favoritefodd", "소고기" }
};
string jsonString = JsonSerializer.Serialize(dic, options);
Console.WriteLine(jsonString);
//output :
{"Name":"진우","Favoritefodd":"소고기"}
[.NET] 역직렬화할 클래스가 없는 경우 JsonNode (0) | 2022.10.10 |
---|---|
[.NET] .NET sdk 버전 확인 (0) | 2022.10.10 |
[.NET] Json 직렬화 및 역직렬화 (0) | 2022.10.10 |
[.NET] .NET 통합: .NET 5에 대한 Microsoft의 계획 (1) | 2022.10.08 |
[.NET] NLog 사용 for .NET and .NET Core (0) | 2022.09.24 |
댓글 영역