将带有表情符号的文本保存到文件中变为“?”
Save text with emoji to file become '?'
我必须做什么
我必须创建一个文本文件 (.txt, .doc,
...),其中包含 .net
WebaApi 传递的确切文本(因此使用表情符号)(并将其附加到电子邮件中)。
情况:
我有一个使用 .net webapi 的项目。我的路线之一是 创建一个文本文件并将其附加到电子邮件中,其中一些文本由可能包含表情符号的设备传递 。
我不知道如何正确保存表情符号。如果我将表情符号复制粘贴到 word 或记事本文件中,它可以工作,但如果我通过我的代码保存它,它就不会。我想这是由于格式化,但我试过 Unicode, UTF-32, UTF-8, ASCII
,...
我尝试了很多在 SO 上找到的解决方案,但是 none 对我有用。
例如这个表情符号(从 .net 调试器复制粘贴)--> 根据使用的编码转换为引号或 ¶ó
。
如何将表情符号作为文本保存到文件中,以便接收者可以阅读?
这是我所做的:
//smsText is a string containing emojis
byte[] bytes = Encoding.Unicode.GetBytes(smsText);
Attachment attachment = new Attachment(new MemoryStream(bytes), tokenKey + ".doc");
attachment.ContentType = new ContentType("application/ms-word");
List <Attachment> attachments = new List<Attachment>();
attachments.Add(attachment);
//send email with attachments
请注意,带有调试器的 smsText 包含正确显示的内容。
电子邮件正确到达收件人,带有 .doc 附件,但附件不包含表情符号
您的 smsText
包含明文字符串。您不能只将该字符串写入流或文件,然后调用 Word 文件*.
Word 文件是具有特定格式的二进制文件。您需要使用可以编写此格式的库,或使用 Interop 与现有的 Word 安装进行互操作。
参见示例 Free library to MS Word。
如果您对纯文本文件没问题,只需将文本的字节写入流并传播适当的编码(在本例中为 Unicode,即 .NET 上的 UTF-16)。
*: 是的,就这样 Excel 尽量格式化一个 HTML table作为 Excel 文件,但你不应该这样做。
我必须做什么
我必须创建一个文本文件 (.txt, .doc,
...),其中包含 .net
WebaApi 传递的确切文本(因此使用表情符号)(并将其附加到电子邮件中)。
情况:
我有一个使用 .net webapi 的项目。我的路线之一是 创建一个文本文件并将其附加到电子邮件中,其中一些文本由可能包含表情符号的设备传递 。
我不知道如何正确保存表情符号。如果我将表情符号复制粘贴到 word 或记事本文件中,它可以工作,但如果我通过我的代码保存它,它就不会。我想这是由于格式化,但我试过 Unicode, UTF-32, UTF-8, ASCII
,...
我尝试了很多在 SO 上找到的解决方案,但是 none 对我有用。
例如这个表情符号(从 .net 调试器复制粘贴)--> 根据使用的编码转换为引号或 ¶ó
。
如何将表情符号作为文本保存到文件中,以便接收者可以阅读?
这是我所做的:
//smsText is a string containing emojis
byte[] bytes = Encoding.Unicode.GetBytes(smsText);
Attachment attachment = new Attachment(new MemoryStream(bytes), tokenKey + ".doc");
attachment.ContentType = new ContentType("application/ms-word");
List <Attachment> attachments = new List<Attachment>();
attachments.Add(attachment);
//send email with attachments
请注意,带有调试器的 smsText 包含正确显示的内容。
电子邮件正确到达收件人,带有 .doc 附件,但附件不包含表情符号
您的 smsText
包含明文字符串。您不能只将该字符串写入流或文件,然后调用 Word 文件*.
Word 文件是具有特定格式的二进制文件。您需要使用可以编写此格式的库,或使用 Interop 与现有的 Word 安装进行互操作。
参见示例 Free library to MS Word。
如果您对纯文本文件没问题,只需将文本的字节写入流并传播适当的编码(在本例中为 Unicode,即 .NET 上的 UTF-16)。
*: 是的,就这样 Excel 尽量格式化一个 HTML table作为 Excel 文件,但你不应该这样做。