дартс json.encode (данные) не может принять другой язык - PullRequest
0 голосов
/ 25 октября 2018

Я сейчас занимаюсь веб-разработкой с помощью dart.Реализован сервис с mockclient.Однако возникает следующая ошибка.Приведенный ниже код реализации представляет собой веб-API-интерфейс в памяти, который наследует mockClient.Код, который вызывает client.send () и возвращает результат.

test_value является результатом json.encode (data).

var test_value = '{"id": 1, "type": "Appetizer", "name": "한글"}';

     return Response (test_value, 200, headers: {'content-type': 'application / json'});

ERROR

Invalid argument(s): String contains invalid characters.
dart:convert                                           Latin1Codec.encode
package:http/src/response.dart 36:49                   new Response
package:basil/common/mock_rest/mock_recipe.dart 40:12  MockRecipe._handler

Если вы поместите английскую строку в название вышеприведенного кода реализации, ошибки не будет.Почему при вставке символа, отличного от английского, появляется ошибка?

Пожалуйста, дайте мне знать, если знаете!

Программист дартс борется в одиночестве в Корее

1 Ответ

0 голосов
/ 25 октября 2018

Класс Response использует кодировку Latin-1 для тела, если не указано иное.Это явно не задокументировано в самом конструкторе, но документация по геттеру body предлагает это.

Попробуйте установить кодировку / кодировку в заголовке, например, как:

return Response(test_value, 200, headers: {
    HttpHeaders.contentTypeHeader: 'application/json; charset=utf-8'
});
...