AdaptiveCard Bot Framework V4 中的日语字符
Japanese character in AdaptiveCard Bot Framework V4
我一直在尝试打印一张带有日语字符的简单卡片,但它一直显示方框和未知字符。
这就是我创建自适应卡的方式,然后我在 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),
};
打印输出图片:
如您所见,返回的 JSON 数据也是错误的。所以这将它固定到 Bot 的主要来源。我尝试将包含日语字符的 Json 文件也更改为 web.config
处的编码,但它并没有解决我的问题。回到 Bot Framework v3,printing/displaying 日文字符没有问题。但是当我尝试 v4 时,日语字符会变成那样。
任何修复、解决方案、变通方法都将不胜感激。谢谢
编辑:
尝试使用 ReadAllText
中的编码参数(Encoding.UTF8、Encoding.UTF32、Encoding.Unicode)。在UTF8中,其他日文字符得到打印但破坏格式Json无法解析,在utf32和unicode中也出现。默认情况下字符相同。
编辑:
所以在不懈地研究之后,我发现 JSON 只将数据编码为标准的 UTF-8 以使其更轻,并尝试使用将字符转换为 UTF-16 并成功打印,但这对我来说似乎是错误的.有没有其他方法可以正确打印日文字符?
当您在 Visual Studio 2019 年编辑 JSON 并尝试使用日文字符保存文件时,Visual Studio 会自动为您修复格式:
如果您想使用特定编码手动保存文件,而不是依赖自动对话框,您可以使用“文件”>“另存为...”对话框中的“使用编码保存...”选项:
如果您 select 代码页 65001,即带或不带签名的 Unicode (UTF-8),您的日文字符应该可以正确显示:
我一直在尝试打印一张带有日语字符的简单卡片,但它一直显示方框和未知字符。
这就是我创建自适应卡的方式,然后我在 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),
};
打印输出图片:
如您所见,返回的 JSON 数据也是错误的。所以这将它固定到 Bot 的主要来源。我尝试将包含日语字符的 Json 文件也更改为 web.config
处的编码,但它并没有解决我的问题。回到 Bot Framework v3,printing/displaying 日文字符没有问题。但是当我尝试 v4 时,日语字符会变成那样。
任何修复、解决方案、变通方法都将不胜感激。谢谢
编辑:
尝试使用 ReadAllText
中的编码参数(Encoding.UTF8、Encoding.UTF32、Encoding.Unicode)。在UTF8中,其他日文字符得到打印但破坏格式Json无法解析,在utf32和unicode中也出现。默认情况下字符相同。
编辑: 所以在不懈地研究之后,我发现 JSON 只将数据编码为标准的 UTF-8 以使其更轻,并尝试使用将字符转换为 UTF-16 并成功打印,但这对我来说似乎是错误的.有没有其他方法可以正确打印日文字符?
当您在 Visual Studio 2019 年编辑 JSON 并尝试使用日文字符保存文件时,Visual Studio 会自动为您修复格式:
如果您想使用特定编码手动保存文件,而不是依赖自动对话框,您可以使用“文件”>“另存为...”对话框中的“使用编码保存...”选项:
如果您 select 代码页 65001,即带或不带签名的 Unicode (UTF-8),您的日文字符应该可以正确显示: