当前位置: 首页 > 知识库问答 >
问题:

使用Javascript/jQuery使用ISO-8859-1字符集复制超文本标记语言表单POST

公西凯捷
2023-03-14

我的PHP Web应用程序在ISO-8859-1编码上运行。当我将带有接受-字符集="ISO-8859-1"的超文本标记语言表单发布到PHP服务器时,这是我在服务器端收到的

一种。原始形式的ASCII字符。

b.可在ISO-8859-1中以其原始形式表示的特殊字符。

c、 无法在ISO-8859-1中表示的特殊字符转换为HTML实体。

所有数据都作为正确的ISO-8859-1编码字符接收。我想用JavaScript或jQuery复制完全相同的行为。我尝试过的所有解决方案最终都将所有特殊字符作为双编码字符发送到PHP文件,我必须对它们进行utf8_解码。

我已经制定了如下工作解决方案:

a、 将不支持的特殊字符转换为HTML实体。

湾。使用XMLHttpRequest/ActiveXObject发送JavaScript AJAX post请求。要做到这一点,我必须“编码URIComponent()”数据。

c、 在服务器上接收post数据,并使用“utf8_decode()”进行解码,因为“encodeURIComponent()”将特殊字符编码为UTF-8。

我想要一个JavaScript解决方案,它可以确保我从服务器端的POST接收到正确的ISO-8859-1编码数据,这样我就不必执行“utf8_decode()”。换句话说,我希望JavaScript解决方案能够准确地复制表单行为,其中包含接受-charset="ISO-8859-1"。

谢谢你

共有1个答案

朱伯寅
2023-03-14

据我所知,javascript中没有可靠的方法来实现这一点。字符编码不是Javascript的强项,我认为这主要是因为它将这些领域留给其他人来决定,比如描述内容的HTML、进行解析的服务器语言或提供环境的Web服务器。

就JS中的任何URI编码/解码函数而言,它都是UTF-8,这是内置的,就像在中一样,没有可以传递的参数来覆盖它。

您还可以尝试覆盖MimeType并指定一个新类型,例如:

var xhr = new XMLHttpRequest();
if (xhr.overrideMimeType) {
    xhr.overrideMimeType('application/x-javascript; charset=ISO-8859-1');
}

不确定它有多稳定,但这是你可能想探索的一个方向...

 类似资料:
  • 问题内容: 我有ISO-8859-1数据库,所以我希望完全在此代码页中交换请求。那么,如何以正确的方式设置AJAX请求的内容类型呢? 问题答案: 即使这样做很不好(上面有很多评论),也可以:

  • 问题内容: 我正在开发一个项目,我们需要将我们的信息保存在具有ISO-8859-1表的旧数据库中。因此,在向数据库中写入内容之前,我需要将其从UTF-8转换为ISO-8859-1,并且每次从数据库中检索到它时,都需要将其转换回UTF-8。 我试图将库 **code.google.com/p/go-charset/** 用作以下每个我需要保留的文本字段。 问题是即使使用 toISO88591 函数,

  • 对于上面的html内容,我如何使用Jsoup解析并获取文本 当我使用 我得到了这样的东西

  • 我将html表格从网页复制到excel,并尝试使用下面的代码,但没有结果。请就如何解决这个问题提出建议。我做了所有的实验,但没有得到正确的结果。

  • 我是新来的。我想解析html,但问题是我们必须在中指定的URL,我将在运行时从其他页面响应此URL。有没有办法将收到的网址传递到中?我读过这样的东西: 但是我不知道如何使用它。我很想知道是否有其他方法比jsoup更好。

  • 我有以下问题: 我有一个带有ISO-8859-1字符集的网页。 在这一页中,我有一个带有参数的表单 将使用post方法发送表单 我只想对浏览器说:页面字符集是iso-8859-1但这个小区域是UTF-8