我需要允许在我的应用程序的电子邮件主题中发送表情符号。用户可以从网络表单中保存表情符号。在网络表单上复制表情符号并将其粘贴时,浏览器会将表情符号保存为十进制NCR格式。
将表情符号保存为十进制NCR格式后,在主题行中无法正确显示。它只是十进制的NCR字符串。如果我可以将此字符串转换为UTF-8字节表示形式,则可以正常工作。
如何从十进制NCR格式转换为UTF-8字节数组?这是一些我用来测试的代码。我用Unicode Code Converter来获取牛角包表情符号的值。
[Fact]
public void ConvertsToUnicode() {
// arrange
var decimalNcr = "🥐";
var bytes = new byte[] {0xF0, 0x9F, 0xA5, 0x90};
var emoji = "?";
// act
var emojiTest = Encoding.UTF8.GetString(bytes);
var encoded = Encoding.UTF8.GetBytes(emoji);
// assert
emojiTest.Should()
.Be(emoji);
encoded.Should()
.BeEquivalentTo(bytes);
}
答案 0 :(得分:0)
我想你可以使用
转换一个经过HTML编码的字符串以进行HTTP传输 进入解码后的字符串。
或
转换一个经过HTML编码的字符串以进行HTTP传输 进入解码后的字符串。
示例
Console.WriteLine(WebUtility.HtmlDecode("🥐"));