我有一个 Asp.Net Web 应用程序,用户在其网页中包含脚本标记,并且 从我的服务器获取数据(使用 JsonP 和通用处理程序 (ashx))
数据是希伯来语,我在响应中将字符集设置为utf-8。
当客户端网站(显示数据)使用“windows-1255”时 我看不清文字。
该脚本可以包含在任何具有任何字符集的网页中。
我需要转换数据或以不同方式设置响应字符集属性吗?
谢谢 亚龙
最佳答案
When the client web site (which displays the data) uses "windows-1255" I don't see the text properly.
是的。事情是这样的:当你服务时<script>
,您可以将响应的 Content-Type 中的“charset”参数设置为您喜欢的任何内容,但 IE 会忽略您并使用原始页面的编码。 (也许其他一些浏览器也是如此。)
因此,如果您正在使用 JSONP 或其他基于脚本标记的方式来提取数据,则该数据必须采用与原始页面相同的编码,或者采用纯 ASCII。如果您以可能不同的编码为许多网页提供外部服务,则必须坚持使用 ASCII。
这意味着您的 JSON 编码器必须将字符串文字中的所有非 ASCII 字符转换为其 JS 转义形式,例如 \u20AC
而不是原始欧元。
关于asp.net - 字符编码问题——跨域脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1465356/