Node.js HTTP 客户端中的自动 UTF-8 编码

2023-12-31

我尝试使用 Node.js 从远程主机加载 XML 内容。

问题是像“ä”这样的德语“元音变音”被破坏了。就像在浏览器中一样,这通常是一个简单的编码问题。但由于远程主机上的 XML 内容是用 iso-8859-2 编码的,所以我没有成功让这些字母恢复工作。

功能非常简单。我只是使用 Node.js 中集成的默认 HTTP 客户端通过简单的 get 请求连接到远程主机。

一些环境事实:

  • 远程系统使用“iso-8859-2”编码。
  • 编码当前在响应标头中设置。
  • 接收到的数据(块)中的字符是不可恢复的损坏的response.onData(chunk)

Node.js 在默认 Debian 服务器上运行 0.2 版。

该代码基于默认的 httpClient,如 Node.js 文档中所述。

我尝试了以下方法:

response.defaultAsciiEncoding true/false
response.encoding = UFT-8/ascii

我使用 UTF-8 编码器/解码器来对块进行编码/解码。失败后,我尝试对整个响应正文进行编码/解码。

我对使用缓冲区不太熟悉,我想问题一定是在那个方向。或者 Node.js(或 httpClient)默认情况下根本无法处理其他编码类型,这是我的第二个猜测。在这种情况下,我需要使用我认为的网络库编写自己的 HTTP 客户端。我只是想确保我没有走错方向:)


我快速浏览了一下 Node.js 源代码,看起来 svick 是对的:Node.js 不支持 ISO 编码。但是,您可以以二进制流的形式获取响应,然后使用您自己的编码将其返回到浏览器或使用 node-iconv (再次按照 svick 建议)。

这是一个小例子:http://gist.github.com/576884 http://gist.github.com/576884

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js HTTP 客户端中的自动 UTF-8 编码 的相关文章

  • node.js 安装向导提前结束

    我无法安装 node js 0 8 9 我是通过安装向导完成的 每次安装结束时我都会收到消息 Node js 安装向导提前结束 会是什么呢 谢谢 这可能会对将来的某人有所帮助 我从安装程序中收到类似的消息 发现我可以转到命令提示符并使用命令
  • ReferenceError:找不到变量:需要

    我在加载时遇到问题node modules到我的网页之一 我已经安装了 npm node js 并且我想使用require 函数在我的网站上初始化 Firebase 我不知道为什么 但它抛出引用错误 ReferenceError 找不到变量
  • Google App Engine - 节点:找不到模块“firebase-admin”

    第一次在这里部署 GAE 应用程序 我尝试遵循本教程 https firebase googleblog com 2016 08 sending notifications Between android html https fireba
  • Response.Write - Internet Explorer 中的文件名编码错误

    我使用以下代码将文件从服务器发送到客户端 Response AppendHeader content disposition attachment filename FileName Response ContentType MimeTyp
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 如何使用xquery查找节点并向其添加子节点?

    是否可以使用xpath xquery查询特定的xml节点 然后向其导入 添加子节点 示例 代码取自http codepad org gJ1Y2LjM http codepad org gJ1Y2LjM 这是在类似的问题中提出的 但不相同 1
  • 在java中创建一个XML树并将其转换为json对象

    我尝试创建也能够转换为 json 的树 但对于只有一个xpath 当我尝试实现多个 xpath 时 我无法获得所需的输出 这里我分享一下我的实现 private static Document addElemtbypath List
  • SimpleXML插入处理指令(样式表)

    我想集成一个XSL文件在一个XML给我的字符串php CURL命令 我试过这个 output XML gived me by curl option hotel simplexml load string output hotel gt a
  • 如何修复超出最大调用堆栈大小

    有一个 MERN Firebase 应用程序并收到此错误和一堆 atdeepExtend deepCopy ts 71 RangeError Maximum call stack size exceeded getApps as apps
  • 为什么此类方法中的“this”未定义?

    我试图搜索似乎整个互联网 但我仍然对我为微服务编写的 JS 类的问题感到烦恼 仍在学习中 因此 我尝试在实例化对象上调用类方法 根据我的知识和我的 我认为是错误的 单元测试 它应该可以工作 好吧 我将从我收到的错误开始 GET api us
  • 为什么changeResourceRecordSets没有被授权访问此资源?

    我正在尝试在 Route 53 中创建一条别名类型的新记录 以告诉 Route 53 起诉 CloudFront 来为该站点提供服务 我正在尝试使用以下代码来执行此操作 let options ChangeBatch Changes Act
  • 让 babel 排除测试文件

    在我的构建步骤中 我使用 babel 将代码转译为 es5 从src to dist 如何让它排除以以下结尾的文件 test js 包 json scripts build babel src out dir dist babelrc pr
  • 节点:以编程方式检查包的最新版本

    我希望我的节点包 在 npm 上发布 在新版本可用时提醒用户 如何以编程方式检查已发布软件包的最新版本并将其与当前版本进行比较 Thanks 您可以结合npmview https npmjs com package npmview 用于获取
  • 对编码的 XML 值应用 XSLT 模板

    我有一个 XML 文档 需要将其转换为 HTML XML内容如下
  • xmlns 元素的顺序重要吗

    我不知道如何在 google 中搜索此内容 但是 xmlns 元素的问题在 XML 文件中重要吗 我正在 ASP NET VB 中使用 XMLWriter 创建一个 XML 文件 并且尝试匹配我提供的示例
  • 如何使用文档客户端更新 dynamodb 中的嵌套列表数据

    我有一个 dynamoDB 表 其中有一个包含 UserId 和列表列表的项目 它看起来像这样 Item UserId abc123 Lists id 1 title My favorite movies topMovies id 1 ti
  • 如何将 XML 转换为 OCI-Lob 对象?

    我有一个 XML 如下
  • 为 Promise 编写循环的正确方法。

    如何正确构造循环以确保满足以下条件承诺电话和被束缚的记录器 log res 通过迭代同步运行 蓝鸟 db getUser email then function res logger log res this is a promise 我尝
  • Angularjs $http 似乎不理解响应中的“Set-Cookie”

    我有一个带有 Passport 模块的 Nodejs Express REST api 用于身份验证 登录方法 GET 在标头中返回一个 cookie 当我从 Chrome 调用它时 它工作正常 我的 cookie 已在我的浏览器中设置 但
  • crypto createHMAC 输出根据 Nodejs 版本而有所不同

    我在升级节点版本时遇到加密模块问题 创建的HMAC取决于节点的版本 您将在下面找到重现该问题的代码片段 如果我将密钥编码为 BASE64 或任何 HMAC 不依赖于 node js 版本 如果我将其编码为二进制 则当我更改 Node js

随机推荐

  • 无法识别的 VM 选项“CMSClassUnloadingEnabledn-J-Xmx2Gn”

    我在 Mac 上安装了 scala sbt 当我尝试运行 sbt 时 出现错误无法识别的 VM 选项 CMSClassUnloadingEnabledn J Xmx2Gn 我认为 JVM 有问题 但找不到针对此错误的任何帮助 更多错误信息
  • 是否可以使用情感生成CSS文件?

    emotion https emotion sh是一个 css in js 库 我看到它创建了
  • name 属性中带有方括号的输入

    我在这个论坛上进行了很多搜索来解决这个问题 但到目前为止还没有成功 我有一个表格有几个
  • pad_inches=0 和 bbox_inches="tight" 使绘图小于声明的 Figsize

    我正在制作一个嵌入乳胶中的出版质量的绘图 我希望在大小和字体方面非常精确 以便文章中的字体与绘图中的字体大小相同 为了防止绘图在乳胶中缩放 我希望它具有精确的尺寸 但我不能 这是我的代码 import matplotlib pyplot a
  • Windows 上运行 ASP.NET 的 IIS 替代方案

    Windows 上是否有任何替代 IIS 来运行 ASP NET 的方法 CassiniEx 看起来很老 有卡西尼号UltiDev http www ultidev com products Cassini 这是一个 免费 轻量级 可再发行
  • Conda 和 Python 模块

    遗憾的是 我不明白如何安装随机 python 模块以在我的 Anaconda 发行版的 iPython Notebooks 中使用 我需要能够在不总是使用实时互联网连接的情况下完成这些事情 这一事 实使问题变得更加复杂 我最常遇到 gcc
  • 从 PHP 调用 Perl 脚本并传入变量,同时还使用可变的 Perl 脚本名称

    我通常如下从 PHP 调用 perl 脚本并以这种方式传递变量 它工作得很好 但是现在我正在构建一个可重用的组件 我还想改变我传入的 perl 脚本名称 这是让我有些头痛 所以我想知道是否有人可以指出更好的方法来做到这一点 因为我的方法不起
  • SQL Server 代理作业失败时通知多个操作员

    我在 SQL Server 2008 中有一个作业设置 它会向one当作业失败时操作员 问题 是否可以设置针对该特定作业向多个操作员发送通知电子邮件 我相信一个可能的解决方法是为每个给定严重性的数据库创建大量警报 但我希望有一种更简洁的方法
  • 如何捕获 django url 中包含一个或多个正斜杠的字符串

    我的代码看起来像这样 urls py from django urls import path from import views app name graduates urlpatterns path status detail
  • 我可以将 ShowDialog() 设置为不在最顶层吗?

    有没有办法将 ShowDialog 设置为不在最顶层 我已经查看了所有相关的SO问题 但没有一个quite符合我的情况 我所做的是从 datagridview 按钮列打开一个新的 WinForm 这个新表单从几个 SQLite 表中提取信息
  • PostgreSQL 更改返回行的顺序

    我有一个名为类别的表 其中包含 ID long Name varchar 50 parentID long 和 shownByDefault boolean 列 该表包含 554 条记录 所有显示的默认值都是 假 当我执行 从类别中选择 i
  • 使用 VBScript 自动化应用程序

    我是 VB 脚本编写新手 我希望 VB 脚本根据应用程序的事件进行操作 例如 VBScript 应该等到应用程序中出现弹出消息 VBScript 和 Windows 脚本宿主仅支持原始 GUI 自动化 例如激活窗口 AppActivate
  • 如何存储每个类别对象的总提款金额?

    我有一个Category类 并且该类的每个实例都有一个分类帐属性 该分类帐属性实际上是一个字典列表 其中包含以下形式的取款和存款金额以及描述 amount amount description description 现在 我想定义一个函数
  • 在 Blend 2015 中使用 3D OBJ 文件

    我刚刚开始学习 WPF 3D 并按照教程进行操作 我创建了一个 3D 模型并将其导出为 OBJ 文件 创建一个新的 WPF 项目并添加此 OBJ 文件 我如何在里面使用它Window or Viewport3D 我在 Microsoft 找
  • 便携式图书馆的语言选择

    我想编写一个库 它将与在 Windows Linux 和 OS X 等现代操作系统上运行的其他程序动态链接 即 它将部署为 dll or so模块 在这种情况下最合适的语言是什么 我应该坚持使用纯 C 吗 或者C 也可以吗 您可以使用 C
  • std::lower_bound 和 std::set::lower_bound 之间的差异

    C 草案谈到了 std lower bound 25 4 3 1 lower bound lower bound template
  • 可以在沙箱中运行的 Mini-OSGi(如 AppEngine 或 WebStart)?

    我真的很喜欢 OSGi 实现的模块化捆绑包的概念 我还喜欢 托管部署 服务 例如 Google AppEngine 用于 Web 应用程序 或 Java WebStart 用于客户端软件 这两个想法似乎在概念上很好地互补 然而 OSGi 标
  • 对 Primefaces 中的树节点进行排序

    我正在使用 JSF 2 1 和 Primefaces 3 3 我正在使用 primefaces 树组件从数据库中创建树 我想按字母顺序对各级树节点进行排序 请帮我解决这个问题 我们在排序时遇到了问题Comparator并发现 有一个方便的P
  • 反序列化 XML 时忽略指定的编码

    我正在尝试通过套接字读取从外部接口接收到的一些 XML 问题是 XML 标头中指定的编码错误 显示为 iso 8859 1 但实际上是 utf 16BE 据记录编码是utf 16BE 但显然他们忘记设置正确的编码 为了在反序列化时忽略编码
  • Node.js HTTP 客户端中的自动 UTF-8 编码

    我尝试使用 Node js 从远程主机加载 XML 内容 问题是像 这样的德语 元音变音 被破坏了 就像在浏览器中一样 这通常是一个简单的编码问题 但由于远程主机上的 XML 内容是用 iso 8859 2 编码的 所以我没有成功让这些字母