【发布时间】:2016-08-12 00:24:10
【问题描述】:
我需要发布一个已设置为使用 windows-1252 字符集对其数据进行 urlencoding 的表单。对于简单字符,默认编码 (utf8) 有效,但它是必须使用所需字符集编码的特殊字符。
我使用的 npm "request" 包不允许设置任何特定的字符集,默认情况下使用 utf8。我尝试了另一个包“Restler”,它允许设置编码,但是当我指定 windows-1252 时它抛出异常说无效的字符集(节点只提供少数编码字符集(缓冲区类)并且 windows-1252 不是其中之一) .
请让我知道我想要实现的目标是否可以在节点中实现?出于验证目的,我在 java 中创建了一个小客户端,并使用带有 windows-1252 编码的 apache 的 http 客户端库,我的请求被服务器成功接受。到目前为止,我还无法在节点中解决这个问题。
【问题讨论】:
-
现代网络服务器无法处理 UTF-8 编码的 URL。你确定这个要求吗?
-
是的,我确定。我在我的 OP 中提到我设法用 java 客户端发送我的请求。当我在该 java 客户端中设置 utf8 时,服务器无法解码回正确的数据。此外,服务器响应发送的 html 页面设置为使用 windows-1252 字符集。
-
出于好奇,服务器是什么?
-
无法告诉您主机名。但在 chrome 的开发人员工具中,我看到了 IIS 7.5。可以通过查看 url 来判断它是一个 ASP.NET 服务器,即它们以 .asp 结尾。
-
此服务器肯定处理 UTF-8 编码的 URL。错误必须是别的东西。你能发布一些有效的网址和一些无效的网址吗?
标签: node.js forms url-encoding