Японский персонаж в AdaptiveCard Bot Framework V4 - PullRequest
0 голосов
/ 27 мая 2019

Я пытался напечатать простую карточку с японским иероглифом, но она продолжает отображать поля и неизвестные символы.

Так я создаю свою адаптивную карточку, затем получаю параметры и данные в формате json, просто чтобы сделать его аккуратным.

        string[] paths = { ".", "Cards", "pickLanguageCard.json" };
        string fullPath = Path.Combine(paths);
        var adaptiveCard = File.ReadAllText(fullPath);
        return new Attachment()
        {
            ContentType = "application/vnd.microsoft.card.adaptive",
            Content = JsonConvert.DeserializeObject(adaptiveCard),
        };

Изображение напечатанного вывода: enter image description here

Как видите, возвращенные данные JSON также неверны.Так что это связало его с основным источником бота.Я попытался в файле Json, содержащем японский символ, также изменить кодировку на web.config, но это не решило мою проблему.Вернувшись в Bot Framework v3, нет проблем с печатью / отображением японского символа.Но когда я попробовал v4, японские символы стали такими.

Любое исправление, решение, обходной путь будут оценены.Спасибо

Редактировать: пробовал использовать параметр кодирования в ReadAllText, (Encoding.UTF8, Encoding.UTF32, Encoding.Unicode).В UTF8 другой японский персонаж печатается, но уничтожает формат Json, который не может разобрать, также это происходит в utf32 и unicode.По умолчанию символ такой же.

Редактировать: Итак, после неустанных исследований я обнаружил, что JSON кодирует данные только в стандартный UTF-8, чтобы сделать его легче, и попытался использовать преобразование символов в UTF-16, и это печатается успешно, но мне кажется, что это неправильно.Есть ли другой способ правильно напечатать японские символы?

1 Ответ

1 голос
/ 07 июня 2019

Когда вы редактируете JSON в Visual Studio 2019 и пытаетесь сохранить файл с японскими символами, Visual Studio автоматически предложит исправить формат для вас:

enter image description here

Если вы хотите вручную сохранить файл с определенной кодировкой, а не полагаться на автоматическое диалоговое окно, вы можете использовать опцию Сохранить с кодировкой ... в диалоговом окне Файл> Сохранить как ...:

enter image description here

Если вы выберете кодовую страницу 65001, которая является Unicode (UTF-8) с или без подписи, ваши японские символы должны отображаться правильно:

enter image description here

...