我正在为我的网站整合雅虎开放ID。我的网站正在运行不同的语言(en,jp,cn等)。当我尝试使用yahoo opend ID从英文网站登录然后它很好,但是当我从日本或中国网站尝试相同时,它不会将我重定向到yahoo open id login。
每次我从javascript获得以下错误
错误:纯文本文档的字符编码不是 声明。该文档将在某些浏览器中使用乱码文本进行渲染 如果文档包含来自外部的字符,则配置 US-ASCII范围。文件的字符编码需要 在传输协议或文件中声明需要使用字节顺序 标记为编码签名。源文件: http://uatstorefrontjpcr.mobi-book.com/ReturnFromSocial/LogOnYahoo 行:0
任何人都可以建议做什么。
我为此目的使用了SocialAuth-net.dll。我在web.config中设置了所有必需的包装器。谷歌和Facebook开放ID也可以使用相同的编码。
答案 0 :(得分:0)
您的网络服务器可能会发回Content-Type
text/plain
的回复。当Web浏览器收到具有该内容类型的响应时,它不知道应该使用什么编码来解码它;由于你没有告诉它如何解码它,不同的浏览器可能会选择不同的方式。
解决方案是提供显式编码。例如,如果您知道文本是UTF-8编码的,那么您可以在标题中提供它,如下所示:
Content-Type: text/plain; charset=UTF-8
根据W3C的an informational page,你可以让ASP.Net使用Response.ContentEncoding
在标题中包含该位。再次使用UTF-8作为示例,您可以这样设置:
Response.ContentEncoding = Encoding.UTF8;