我正在使用 Response.Write 将vCard下载到浏览器,以输出带有特殊重音字符的 .NET 字符串。Mime 类型是text/x-vcard并且法语字符在 Outlook 中出现错误,例如Montréal;Québec
.NET 字符串Montréal Québec
在浏览器中显示。
显然 vCard 默认格式是 ASCII。.NET 字符串是 Unicode UTF-16。
我正在使用来自 CodeProject.com 的 vCard 生成器代码
我玩过这个链接的 MSDN 页面底部的 System.Encoding 示例代码,将 unicode 字符串转换为字节,然后写入 ascii 字节,但后来我得到Montr?al Qu?bec
了(进步但不是胜利)。此外,我尝试将响应的内容类型设置为 us-ascii 和 utf-8。
如果我在 Windows 记事本中打开下载的 vCard 并将其保存为 ANSI 文本(而不是默认的 unicode 格式)并在 Outlook 中打开它就可以了。所以我的假设是我需要下载 ANSI 字符集,但不确定我做错了还是对从哪里开始有误解。
更新:查看原始 HTTP,看来我的法语字符正在以意外的格式下载,所以看起来我需要在服务器端做一些工作...... 原始 http://img444.imageshack.us/img444/ 8533/charsd.png (全尺寸)