&#x开头的是什么编码?

您所在的位置:网站首页 欧元编码开头 &#x开头的是什么编码?

&#x开头的是什么编码?

2024-07-16 03:48:47| 来源: 网络整理| 查看: 265

在 Node 层利用 cheerio 解析网页时,输出的中文内容都是以 &#x 开头的一堆像乱码一样的东西,尝试过各种编码都无效,而且神奇的是,将这一堆“乱码”保存成网页后,通过浏览器打开又可以正常显示。这到底是什么👻??

缩减后的示例代码如下:

const cheerio = require('cheerio'); const $ = cheerio.load('你好') console.log($('#content').html()) //你好

其实,上面那一堆乱码一样的东西,它的学名叫实体编码 entity code。

下面引用下知乎搜到的答案。

在 HTML 中,某些字符是预留的,例如小于号「」等,浏览器会将它们视作标签。如果想要在HTML中显示这些预留字符,我们就要用到字符实体(character entities)。我们比较熟悉的字符实体有空格「;」,小于号「;」,大于号「;」等。这样的格式比较语义化,容易记忆,但其实字符实体有其他的格式:

&name; &#dddd; &#xhhhh; 这三种转义方式都称作 character reference,第一种是 character entity reference,「&」符号后接预先定义好的 entity 名称。 后两种是 numeric character reference,数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,「&#x」开头的后接十六进制数字。

从 HTML4 开始,numeric character reference 以 Unicode 为准,与文档编码无关。「你好」二字分别是 Unicode 字符 U+4F60 和 U+597D,十六进制表示的 code point 数值「4F60」和「597D」,同时也就是十进制的「20320」和「22909」。所以

在HTML中输入

你好 你好

都会显示为“你好”。

知道原因后,那么如何解决上述的问题呢?

方法一:使用cheerio提供的属性

cheerio默认会对entity进行decode,我们只需要关闭该功能即可

const cheerio = require('cheerio'); const $ = cheerio.load('你好', { decodeEntities: false }) console.log($('#content').html()) // 你好

方法二:手动decode

function decode(str) { // 一般可以先转换为标准 unicode 格式(有需要就添加:当返回的数据呈现太多\\\u 之类的时) str = unescape(str.replace(/\\u/g, "%u")); // 再对实体符进行转义 // 有 x 则表示是16进制,$1 就是匹配是否有 x,$2 就是匹配出的第二个括号捕获到的内容,将 $2 以对应进制表示转换 str = str.replace(/&#(x)?(\w+);/g, function($, $1, $2) { return String.fromCharCode(parseInt($2, $1? 16: 10)); }); return str; }

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭