Проблема JsonSerializer.Serialize с различным языковым характером - PullRequest
0 голосов
/ 02 ноября 2019

Вот мой код:

public class TestModel{
  public string AAA{get;set;}
  public string BBB{get;set;}
}
        [Route("Test")]
        public async Task<string> Test()
        {           
            TestModel _TestModel=new TestModel(){AAA="123",BBB="привет123"};
            string JSON = JsonSerializer.Serialize(_TestModel, typeof(TestModel));            
            return JSON;
        }

Когда я запустил program, JSON успешно преобразуется.

Однако символ, который не является английским или числовым, не можетпреобразовать правильно, но отображает только некоторые странные строки, такие как "\u65B0".

Я думаю, возможно, это проблема кодирования. Однако, похоже, я не могу установить кодировку в JsonSerializer.Serialize.

Как я могу решить эту проблему? Спасибо.

1 Ответ

0 голосов
/ 03 ноября 2019

Я решил проблему, изменив JsonSerializer.Serialize следующим образом:

string JSON = JsonSerializer.Serialize(_TestModel, typeof(TestModel), new JsonSerializerOptions() { Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All) });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...