最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs+axios爬取html出現中文亂碼并解決示例

 更新時間:2022年06月28日 08:57:50   作者:天問  
這篇文章主要為大家介紹了nodejs+axios爬取html出現中文亂碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

一、亂碼原因

當使用 nodejs + axios 來爬取某個 url 對應的 html 時,出現中文亂碼。

在 HTML 頁面的 head 中沒有設置 <meta charset="UTF-8"> ,而 html 頁面默認是 GBK 的編碼。

使用 axios 發(fā)送請求 responseEncoding 默認是 utf8,造成編碼不一致,導致最后獲取到的 html 內容出現中文亂碼。

二、解決辦法

以二進制流的形式獲取 HTML 內容,再對內容進行 GBK 編碼解析。具體步驟如下:

  • 設置 axios 請求時的 responseType 為 arraybuffer;
  • 使用 TextDecoder 對象提供的方法對二進制流進行編碼解析。

eg:

async function getHtml() {
  let res = await axios({
    url: "http://www.xxx.com",
    headers: {
      // ...
    },
    responseType: "arraybuffer", // 關鍵步驟
    responseEncoding: "utf8",
  });
  let { data } = res
  let utf8decoder = new TextDecoder("GBK"); // 關鍵步驟
  let html = utf8decoder.decode(data);
  console.log(html)
}

這樣就能完美解決中文亂碼的情況了。如果 HTML 設置的其他類型編碼,只需要在 new TextDecoder() 實例化參數傳入對應的編碼即可。

API解讀:

 TextDecoder 接口表示一個文本解碼器,一個解碼器只支持一種特定文本編碼,例如: utf-8、iso-8859-2、koi8、cp1261,gbk 等等。解碼器將字節(jié)流作為輸入,并提供代碼點流作為輸出。

以上就是nodejs+axios解決html出現中文亂碼示例的詳細內容,更多關于nodejs axios解決html中文亂碼的資料請關注腳本之家其它相關文章!

相關文章

  • 一文詳解Node.contain?函數兼容處理

    一文詳解Node.contain?函數兼容處理

    這篇文章主要為大家介紹了Node.contain?函數兼容處理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 基于NodeJS+MongoDB+AngularJS+Bootstrap開發(fā)書店案例分析

    基于NodeJS+MongoDB+AngularJS+Bootstrap開發(fā)書店案例分析

    這章的目的是為了把前面所學習的內容整合一下,這個示例完成一個簡單圖書管理模塊,因為中間需要使用到Bootstrap這里先介紹Bootstrap
    2017-01-01
  • Node.js中的Buffer對象及創(chuàng)建方式

    Node.js中的Buffer對象及創(chuàng)建方式

    node.js提供了一個Buffer對象來提供對二進制數據的操作,Buffer?類的實例類似于整數數組,但?Buffer?的大小是固定的、且在?V8?堆外分配物理內存。本文給大家介紹Node.js中的Buffer對象及創(chuàng)建方式,感興趣的朋友一起看看吧
    2022-01-01
  • 使用Node.js處理前端代碼文件的編碼問題

    使用Node.js處理前端代碼文件的編碼問題

    這篇文章主要介紹了使用Node.js處理前端代碼文件的編碼問題的方法,Node自帶的相關類庫處理編碼方面的問題時還是比較得心應手的,需要的朋友可以參考下
    2016-02-02
  • 如何讓node運行es6模塊文件及其原理詳解

    如何讓node運行es6模塊文件及其原理詳解

    這篇文章主要介紹了如何讓node運行es6模塊文件及其原理詳解,詳細的介紹了2種方式,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Node.js?中的服務器相關概念(常見的服務器任務)

    Node.js?中的服務器相關概念(常見的服務器任務)

    Node.js?中,服務器的創(chuàng)建與管理是非常重要的內容,Node.js?的非阻塞?I/O?特性使得它特別適合處理高并發(fā)的請求,本文將介紹一些與?Node.js?服務器相關的基本概念,包括?HTTP?服務器、請求和響應、路由、以及如何處理常見的服務器任務,感興趣的朋友一起看看吧
    2025-04-04
  • Node.js數據庫操作之查詢MySQL數據庫(二)

    Node.js數據庫操作之查詢MySQL數據庫(二)

    這篇文章主要介紹了Node.js數據庫操作之查詢MySQL數據庫的相關資料,文中介紹的非常詳細,對大家學習或者使用mysql能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • npm配置國內鏡像資源+淘寶鏡像的方法

    npm配置國內鏡像資源+淘寶鏡像的方法

    這篇文章主要介紹了npm配置國內鏡像資源+淘寶鏡像的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 從零開始學習Node.js系列教程二:文本提交與顯示方法

    從零開始學習Node.js系列教程二:文本提交與顯示方法

    這篇文章主要介紹了Node.js文本提交與顯示方法,結合實例形式分析了nodejs基于http的文本提交、傳輸與顯示相關操作技巧,需要的朋友可以參考下
    2017-04-04
  • Node.js中Swagger的使用指南詳解

    Node.js中Swagger的使用指南詳解

    Swagger(目前用OpenAPI?Specification代替)是一個用于設計、構建、記錄和使用REST?API的強大工具,本文將探討使用Swagger的一些關鍵技巧,需要的可以參考一下
    2024-01-01

最新評論

利辛县| 青田县| 原平市| 洪雅县| 苍梧县| 英德市| 新民市| 淮阳县| 绥芬河市| 大悟县| 天气| 宣恩县| 霍林郭勒市| 仙游县| 石屏县| 章丘市| 德化县| 华坪县| 攀枝花市| 乌兰浩特市| 大冶市| 东阿县| 普格县| 湘潭县| 新乡市| 庐江县| 七台河市| 鄂伦春自治旗| 吴江市| 延边| 高尔夫| 江安县| 黑龙江省| 静乐县| 砚山县| 上杭县| 九龙城区| 廉江市| 易门县| 沾化县| 丹棱县|