我在通过.NET为XML文件中的输出编码字符时遇到了一系列问题。我有一种感觉,问题与正在使用的Response对象的设置有关,但我无法找到正确的设置。
如果我执行以下操作:
system.web.httpcontext.current.response.write("€ & ™" & server.HTMLEncode(" € & ™ "))
我得到以下输出:
€ & ™ € & ™
问题是为什么标准ASCII字符编码,但扩展(?)字符不?我需要给服务器对象一些设置,告诉它转换像Euro / Trade Mark这样的字符吗?
MSDN的HTMLEncode功能页面的一个要点是:
任何代码大于或等于0x80的ASCII代码字符都会转换为&#,其中是ASCII字符值。
答案 0 :(得分:2)
您似乎在查看classic ASP server objects的文档。
ASP.NET字符串是基于Unicode的,而不是基于ASCII的,documentation不提及ASCII。
如果您使用TextWriter
初始化Encoding.AsciiEncoding
的重载,则可以确保ASCII编码。