我们有一个应用程序,它将用户输入的文本字符串输入到Web表单中并将其打包为XML。只是为了混淆事情,XML是作为Outlook电子邮件消息的主体发送的。XML中的UTF-8或ISO-8859-1
因为用户几乎可以将任何东西粘贴到Web表单中(通常是Word),所以文本字符串可以包含非ASCII(7位)字符,例如用于打开和关闭双引号的字符。
该字符串通过电子邮件传播,但当我们使用Microsoft XML解析器时,它抱怨(非常正确)XML包含无效字符。
快速解决方法是在编码头中加入encoding =“iso-8859-1”。但是,我不知道在开始时以真正的UTF-8格式编码XML文件是否会更好,因为我已经阅读过文章,指出如果每个XML文档都以UTF-8编码?
但是...我们是否会遇到麻烦,因为XML文档实际上是通过电子邮件正文传输的?据我所知,UTF-8是一个可变字节长度编码系统,我假定它使用7位ASCII码和escapte字符来表示“有更多数据”。
另一个选项是设置为UTF-8,但用非ASCII字符替换为& #nnn;格式。
任何建议在这个相当复杂的领域表示赞赏。
干杯,罗布。
实际上,使用&#的想法并不是很好 - 当文档打开正确时,它在IE中无法正确显示。打开/关闭引号显示为一个块。 – 2009-08-11 10:00:44
“块”表示正在使用的字体没有可用于显示字符的字形。 – andynormancx 2009-08-11 10:02:27
ISO 8859-1没有这些“智能”引号。所以会发生的是,表示这些智能引号的字节最终会随机成为其他ISO-8859-1字符,例如,引用文字“。 UTF-8是安全的。 – MSalters 2009-08-11 11:41:08