我正在尝试为网站创建VCard。我只需使用带有Notepad ++的Outlook创建一个“真正的”VCard,就可以看到我需要它来创建一个动态。一切正常,我可以在需要的地方添加任何我需要的东西。相反一点:
我添加了Outlook创建的所有建议添加的内容:“CHARSET = Windows-1252:”在我的字符串条目前面(也尝试了ISO-8859-1,UTF8,UTF7,UTF-8, UTF-7)并没有一个正在运作。
有什么建议吗?
编辑(亚历山大C.回答后)
这是VCard源码。 请注意,源代码正确显示,但当我用Outlook打开它时,我仍然有重音问题:
BEGIN:VCARD 版本:2.1
N; LANGUAGE = FR-CA; CHARSET = UTF-8:Dugré;西蒙
ORG;字符集= UTF-8:CompanyNameéàêâç
TEL; WORK; VOICE:5555555555个
X-MS-OL-DEFAULT-POSTAL-ADDRESS:0
EMAIL; PREF;互联网:hello@world.com
X-MS-OL-DESIGN; CHARSET = utf-8:[VCard HTML格式]
REV:20110404T135700
END:VCARD
答案 0 :(得分:6)
您应该写CHARSET=utf-8
而不是CHARSET=UTF-8
。
vCard 规格表明字符集应该与案例无关,但Outlook并不关心。
答案 1 :(得分:1)
以下是良好行:
currentPage.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0} {1}.vcf", this.FirstName, this.LastName));
currentPage.Response.ContentType = "text/x-vcard";
currentPage.Response.ContentEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); // THIS LINE
currentPage.Response.Write(content);
currentPage.Response.End();
而不是:
currentPage.Response.Charset = "ISO-8859-1";
答案 2 :(得分:0)
尝试utf8
或utf-8
作为字符集。
答案 3 :(得分:0)
这是一个适合我的版本。
<%@ Page Language="C#" CodePage=1252 %>
<%
Response.Charset ="windows-1252";
Response.ContentType="text/x-vcard";
Response.AddHeader("Content-Disposition", "attachment; filename=test.vcf" );
%>
BEGIN:VCARD
VERSION:2.1
N:;Dugré;Simon
FN:Simon Dugré
ORG:CompanyNameéàêâç
TEL;WORK;VOICE:5555555555
EMAIL;PREF;INTERNET:hello@world.com
REV:20110405T164322Z
END:VCARD
这会正确加载到Outlook 2003中。
答案 4 :(得分:0)
我也遇到过特殊字符(波兰语)的问题。我不确定Outlook中的utf-8编码是否存在问题或其他问题。在使用utf-8的多种方法之后:
Response.ContentType = "text/x-vcard; charset=UTF-8";
Response.HeaderEncoding = Encoding.GetEncoding("UTF-8");
Response.ContentEncoding = Encoding.GetEncoding("UTF-8");
Response.Charset = "UTF-8";
我决定尝试Windows-1250编码,(在我的情况下)工作!在尝试删除不必要的行后,结果发现我需要的唯一行是:
Response.ContentEncoding = Encoding.GetEncoding("Windows-1250");
我还推荐vCard库,这对我有很大帮助。