asp.net - 字符编码问题——跨域脚本

标签 asp.net utf-8 xss character-encoding

我有一个 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/

相关文章:

javascript - SignalR 加入/离开组无法正常工作

c# - Multi-Tenancy ASP .NET 应用程序中的隔离

java - 在 MySQL 数据库中插入行之前从字符串中删除二进制代码

php - 什么是允许使用 HTML 输出并避免 XSS 攻击的函数

javascript - 加载数据到div时如何防止XSS?

c# - 带参数的 AutoMapper 依赖注入(inject)

c# - 将 Html5 img src 数据字符串转换为原始字节或文件

go - utf-8转单字节编码

php - MongoDB PHP UTF-8 问题

security - 如何使用Web API限制DOS攻击