Node.js Cheerio 解析器破坏了 UTF-8 编码

2023-12-24

我用 Cheerio 解析我的请求,如下所示:

var url = http://shop.nag.ru/catalog/16939.IP-videonablyudenie-OMNY/16944.IP-kamery-OMNY-c-vario-obektivom/16704.OMNY-1000-PRO;
request.get(url, function (err, response, body) {
  console.log(body);
   $ = cheerio.load(body);
   console.log($(".description").html());
});

作为输出,我看到内容,但采用不可读的奇怪编码:

//Plain body console.log(body) (p.s. russian chars): 
<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше</span></h1><p style

//  cheerio's console.log $(".description").html()
<h1><span style="font-size: 16px;">&#x423;&#x43B;&#x438;&#x447;&#x43D;&#x430;&#x44F; 3&#x41C;&#x43F; IP HD &#x43A;&#x430;&#x43C;&#x435;&#x440;&#x430; OMNY

目标url链接编码为UTF-8格式。那么为什么 Cheerio 会破坏我的编码呢?

尝试使用 iconv 来编码我的身体反应:

var body1 = iconv.decode(body, "utf-8");

but console.log($(".description").html());仍然返回奇怪的文本。


Cheerio 没有破坏任何东西。正在输出HTML 实体 https://developer.mozilla.org/en-US/docs/Glossary/Entity,任何浏览器都会呈现与 HTML 输入完全相同的内容。运行这个片段看看我的意思:

<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше</span></h1>

<h1><span style="font-size: 16px;">&#x423;&#x43B;&#x438;&#x447;&#x43D;&#x430;&#x44F; 3&#x41C;&#x43F; IP HD &#x43A;&#x430;&#x43C;&#x435;&#x440;&#x430; OMNY - &#x43F;&#x43E;&#x43F;&#x440;&#x43E;&#x431;&#x443;&#x439;&#x442;&#x435; &#x43D;&#x430;&#x439;&#x442;&#x438; &#x43B;&#x443;&#x447;&#x448;&#x435;</span></h1>

&#x423;,例如,是字符У编码为 HTML 实体,与实体的方式相同&gt;代表>.

但是,如果你想获取未编码的文本,你可以设置decodeEntities选项false:

const $ = cheerio.load(
  `<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше</span></h1>`,
  { decodeEntities: false }
);


console.log($('span').html())
// => Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше
.as-console-wrapper{min-height:100%}
<script src="https://bundle.run/[email protected] /cdn-cgi/l/email-protection"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js Cheerio 解析器破坏了 UTF-8 编码 的相关文章

  • 我可以使用 lambda 调用将路径参数传递给另一个 lambda 函数吗?

    我正在尝试使用 lambda 调用来调用另一个 lambda 函数并获取响应 问题是其他 lambda 函数需要将 id 作为路径参数 或作为查询字符串 发送 但我在 lambda 调用中没有看到此选项 如果我在有效负载中传递 id 其他函
  • Gulp: /usr/local/bin/gulp: 没有这样的文件或目录

    每当我运行 gulp 时 都会收到以下错误 usr local bin gulp 没有这样的文件或目录 我已经关注了 SO 上几个相关问题的答案 但没有一个能解决我的问题 我已经使用 gulp 几个月了 没有任何问题 但不知何故搞砸了 我已
  • 如何正确关闭 Node.js Express 服务器?

    我需要在收到回调后关闭服务器 auth github callback网址 与平常一样HTTP API http nodejs org docs latest api http html关闭 服务器目前支持server close call
  • 在 Express 中设置客户端可访问 Cookie

    我正在开发一个使用 Express 和 SocketIO 的 Node 应用程序 我想在我的 Express 控制器中设置一个 cookie 然后可以从我的客户端 Javascript 代码访问该 cookie 我尝试的一切似乎都不起作用
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我
  • NodeJS 中的缩进多行日志记录

    我要打印JSON stringify d 反对控制台 将上下文作为 Mocha 测试套件输出的一部分 当测试缩进时 我希望对象日志行向右缩进足够远 例如 3 4 个制表符空格 以便它们可以识别地位于右侧describe group 我怎样才
  • 如何检测字符串字节编码?

    我读取了大约 1000 个文件名os listdir 有些是UTF8编码 有些是CP1252 我想将它们全部解码为 Unicode 以便在我的脚本中进一步处理 有没有办法让源编码正确解码为 Unicode Example for item
  • 如何将UTF-8编码的汉字从MySql正确导出到SQL

    过去三天我们正在与严重的问题作斗争 我们从PhpmyAdmin导出MySql数据库文件 数据库条目中写入的数据是带有UTF 8字符集的中文 导出后将其转换为拉丁字符集 现在我们正在将此数据库SQl文件导入到其他主机 我们在UTF 8和排序规
  • ReactJS 服务器端渲染与客户端渲染

    我刚刚开始研究ReactJS 发现它提供了两种渲染页面的方式 服务器端和客户端 但是 我不明白如何一起使用它 构建应用程序是两种不同的方法 还是可以一起使用 如果我们可以一起使用它 该怎么做 我们需要在服务器端和客户端复制相同的元素吗 或者
  • 使用 Electron 应用程序打包 Keytar

    我正在使用电子构建器 16 6 2 来打包我的电子应用程序 其中包括 keytar 3 0 2 作为产品依赖项 package json 文件包括 scripts postinstall install app deps compile d
  • npm installexpress-generator 不安装express

    我正在遵循 MEAN 堆栈教程 该教程要求我安装 Express 我运行这个 npm install g express generator 这是我的结果 username username Inspiron 3521 npm instal
  • socket.io 自动断开套接字

    当我在电子中运行 socket io 时 我不断在开发者控制台中收到此错误 engine io client socket probe transport websocket failed because of error transpor
  • Node.js:从 s3 下载文件并将其解压缩为字符串

    我正在编写一个AWS Lambda函数 它需要从AWS S3下载文件 解压缩文件并以字符串形式返回内容 我正在尝试这个 function getObject key var params Bucket my bucket Key key r
  • 出现错误:尝试将 Nodemailer 与 Hover.com 电子邮件一起使用时读取 ECONNRESET

    我对用于服务器开发的 Node js 相对较新 对 Nodemailer 也绝对是新手 但它似乎是满足我需求的一个不错的选择 我让它使用 gmail 帐户作为测试 但我一直试图通过 Hover com 将其转换为使用电子邮件地址 但我收到错
  • 使用 Node.js 的前端 javascript 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Nodejs 如何处理相对路径?

    我有一个关于 Nodejs 路径处理的问题 我知道他们在文档中有一个关于此内容的页面 但它不包含我需要的内容 基本上 我有一个文件 其中包含引用文件的相对路径 在本例中为 png 现在 根据我调用文件的位置 图片要么找到 要么找不到 因为文
  • React Native 入门项目捆绑失败并出现意外令牌错误

    我正在尝试使用以下说明创建我的第一个适用于 Android 的 React Native 应用程序https facebook github io react native docs getting started html https f
  • 错误 [ERR_UNSUPPORTED_DIR_IMPORT]:尝试在本地启动 Nodejs 应用程序时导入目录

    我在尝试将我的应用程序部署到 Heroku 时陷入了一个循环 我的进口声明 例如import cors from cors 由于 无法在 Common JS 中加载 ES6 模块 错误 似乎阻止了应用程序在生产环境中启动 在本地运行得很好
  • “调用”C:\Program Files\nodejs\\node.exe”错误

    我一直在尝试安装节点js并安装浏览器同步 C Users Aly gt npm install g browser sync CALL C Program Files x86 nodejs node exe C Program Files
  • 将 JSON var 从路由传递到 ejs

    我在express EJS中有一些代码 1 在 app js 中 创建 mongo 集合对象 app locals userCollection db get userData 2 在user js快速路由文件中 我从这个数据库连接获取数据

随机推荐

  • MySQL数据库存储产品、颜色、尺寸和库存

    我有一个处理衬衫商店的购物车的任务 并且对存储衬衫属性 例如每个商品的颜色 尺寸和库存 的数据库设计感到困惑 假设将以下衬衫存储到数据库 Product name Nike shirt Available colors black whit
  • 如何在python中不断增加值的同时获取输入?

    我对 Python 还很陌生 我正在尝试用 python 制作一个基于文本的类似策略的游戏 我希望有一个不断增加的值 我也希望有一些其他值同时增加或减少 但这只是为了开始 但如果我使用While True循环我不能在程序中做任何其他事情 它
  • 聚合 numpy 函数

    我有一个密集调用的 numpy 操作 我需要优化 np sum a 2 axis 1 5 where a is a 2 dimensional ndarray 该操作由三个函数组成 需要迭代 a 三次 将所有操作聚合在一个函数下并沿轴 1
  • 在 Zeppelin 0.7.1 中运行 Spark 代码时出现 NullPointerException

    我已经安装了Zeppelin 0 7 1 当我尝试执行示例 Spark 程序 可通过Zeppelin Tutorial笔记本 我收到以下错误 java lang NullPointerException at org apache zepp
  • 如何在执行junit时自动生成时序图

    我在 Eclipse 中接到了 在执行 junit 测试用例时自动生成序列图 的任务 我正在学习UML 我找到了可以生成序列的工具 并且我知道 junit 但是我如何将这两者结合起来 我发现不错的工具有 UMLet ModelGoon UM
  • 使用 HOGDescriptor 的问题

    我正在摆弄一些c opencv 我正在查看一些样本 但还没有 设法编译 运行 peopleDetect cpp 它使用HOGDescriptor 我已经设置了一个基本的 Qt 控制台应用程序来测试和缩小问题范围 并得到了这个基本代码 inc
  • 类 static constexpr 的 C++ 链接器错误

    我正在编译以下简单程序g 4 6 1 std c 0x include
  • 在 ControlParameter 中找不到控件 ID

    我试图从文本框中插入值 但收到错误消息 无法在控制参数中找到 controlid TextBox 位于表单视图内 而表单视图位于列表视图内 SqlDataSource 位于 ListView 之外 我的 InsertButton Click
  • 使用 scipy 和 sympy 进行 Python 集成

    我想要一个自定义的 python 函数 采用数学表达式f x 积分的界限x1 x2和所需的耐受性tol Uses sympy integrate y x 检查它是否有解析 符号解 如果有则使用返回结果sympy integrate y x
  • 如何使用 Flutter 在 android studio 中进行代码折叠区域块

    我可以像这样在 android studio 中做区域块 region Description Your code here endregion 但如何与 flutter 一样呢 在 IntelliJ 或 Android Studio ID
  • 注入到 Vue.js 中的

    我有一些外部脚本需要加载到各个页面上 例如 Google Places Autocomplete Facebook API 等 显然 在每条路线上加载它们是没有意义的 但是文档没有解决这种相当常见的情况 此外 Vue 实例安装到主体内的标签
  • 导入多个 AngularJS 模块的工厂

    我想知道是否有一种方法可以将我在 AngularJS 模块中定义的所有工厂导入到控制器中 而不必将它们全部列出 假设我有一个名为foo js包含 angular module Foo factory Bar1 function factor
  • 如何将字符串转换为数组的名称?

    我有大量包含不同数据的数组 每个都有一个看起来像这样的名字 rsf wings isa wings isa ships isa civs etc 我有一个函数可以构建一个String arrayName从传递给它的各种组件中 public
  • (嵌入并)通过 D3 和/或 javascript 引用外部 SVG

    我有一个 svg 文件 想将其嵌入到我的 d3 图形的 svg 结构中 我还需要通过某些 g 元素的 id 引用附加到 g 元素的所有路径 多边形 我尝试了不同的方法来嵌入和引用 svg g s 但由于某些原因它不起作用 1 第一次尝试 F
  • Git 提交是快照,而不是差异。那么为什么需要 rebase 来删除旧的提交呢?

    我的理解是 无论出于何种意图和目的 Git 提交是快照 而不是差异 https github blog 2020 12 17 commits are snapshots not diffs 因此 尽管 Git 会在内部 增量压缩 快照以消除
  • 如何使涉及 future 尾递归的函数?

    在我的 Scala 应用程序中 我有一个函数调用一个返回 Future T 类型结果的函数 我需要在递归函数调用中传递映射结果 我希望这是尾递归的 但是地图 或 flatMap 破坏了这样做的能力 我收到错误 递归调用不在尾部位置 下面是此
  • android:生成不重复的随机数

    有人能帮我制作一种在 Android 中生成不重复的随机数的方法吗 最大数量为 prjcts size 这是我的 JSON 数组 并且返回值应该是整数 我已经拥有的是 int i int prjcts size Math random 我将
  • 限制node.js的内存使用

    我正在尝试限制node js应用程序使用大量内存 我发现 max stack size max executable sizeV8 中可在调用文件时传递的选项 但我应该如何结合这些和可能的其他参数来将最大内存使用量限制为 1GB https
  • 如何控制 XNA 在启动时定位游戏窗口的位置?

    我有以下烦恼 每当我开始调试 XNA 游戏时 游戏窗口就会在屏幕中央弹出 由于我有一个双显示器系统 我想在我的第二个显示器上设置默认启动位置 但是 这应该只发生在调试模式中 您需要添加对System Windows Forms and Sy
  • Node.js Cheerio 解析器破坏了 UTF-8 编码

    我用 Cheerio 解析我的请求 如下所示 var url http shop nag ru catalog 16939 IP videonablyudenie OMNY 16944 IP kamery OMNY c vario obek