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

解決nodejs中使用http請求返回值為html時(shí)亂碼的問題

 更新時(shí)間:2017年02月18日 09:16:22   投稿:jingxian  
下面小編就為大家?guī)硪黄鉀Qnodejs中使用http請求返回值為html時(shí)亂碼的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

今天用nodejs進(jìn)行http請求時(shí)返回的數(shù)據(jù)是一個(gè)html文件,然后我還是按照以前解析json數(shù)據(jù)的方法。果不其然報(bào)錯(cuò)了:SyntaxError: Unexpected token  in JSON at position 0

沒辦法,只好換一種方法,將接受到的Buffer對象toString,然后打印出來發(fā)現(xiàn)是亂碼。

第一感覺是編碼問題,google一下然后看官方文檔,總結(jié)三種方法:

1、toString 加編碼格式作為參數(shù)。

2、使用iconv-lite 改變編碼。

3、使用cheerio來加載html。

奈何上面三種方法都不是我錯(cuò)誤的地方,然后看到cnode里面有個(gè)人有相似的問題,雖然不盡相同,但是下面回答的人中有人提到了使用gzip壓縮,收到后不解壓會導(dǎo)致亂碼,然后在我的請求頭中果然發(fā)現(xiàn)了gzip壓縮 = =手動(dòng)捂臉。

知道了問題所在,那么解決起來就很方便了。

首先讓我們來npm install zlib 一下;

然后在頭部引入 var zlib = require('zlib');

然后查閱官方文檔,發(fā)現(xiàn)有兩種解壓方式,一種是同步,另一種是異步。

我這里就使用異步的方式了。

zlib.unzip(chunk,function(error,res){
  console.log(error);
  console.log(res+"");
});

這里的chunk就是我們的接受到的buffer對象,需要注意的是這個(gè)異步的callback有兩個(gè)參數(shù),第一個(gè)好像是錯(cuò)誤信息,第二個(gè)才是我們需要的html字符串。

如果需要使用同步的同學(xué),請調(diào)用zlib.unzipSync(buffer); ps:表示我測試的時(shí)候報(bào)錯(cuò)了。Error: unexpected end of file

好了,到這里,我的問題就完美解決了。

以上這篇解決nodejs中使用http請求返回值為html時(shí)亂碼的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Angular(5.2->6.1)升級小結(jié)

    Angular(5.2->6.1)升級小結(jié)

    今天小編就為大家分享一篇關(guān)于Angular(5.2->6.1)升級小結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • AngularJs根據(jù)訪問的頁面動(dòng)態(tài)加載Controller的解決方案

    AngularJs根據(jù)訪問的頁面動(dòng)態(tài)加載Controller的解決方案

    這篇文章主要介紹了AngularJs根據(jù)訪問的頁面動(dòng)態(tài)加載Controller的解決方案,需要的朋友可以參考下
    2015-02-02
  • Angular指令封裝jQuery日期時(shí)間插件datetimepicker實(shí)現(xiàn)雙向綁定示例

    Angular指令封裝jQuery日期時(shí)間插件datetimepicker實(shí)現(xiàn)雙向綁定示例

    這篇文章主要介紹了Angular指令封裝jQuery日期時(shí)間插件datetimepicker實(shí)現(xiàn)雙向綁定示例,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • AngularJS初始化靜態(tài)模板詳解

    AngularJS初始化靜態(tài)模板詳解

    這篇文章主要為大家介紹了AngularJS初始化靜態(tài)模板,AngularJS初始化靜態(tài)模板有兩種方式,一是通過ng-app來自動(dòng)初始化模塊,也可以通過angular.bootstrap(document, [module])手動(dòng)啟動(dòng)應(yīng)用,感興趣的小伙伴們可以參考一下
    2016-01-01
  • angularJs提交文本框數(shù)據(jù)到后臺的方法

    angularJs提交文本框數(shù)據(jù)到后臺的方法

    今天小編就為大家分享一篇angularJs提交文本框數(shù)據(jù)到后臺的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Angular環(huán)境搭建及簡單體驗(yàn)小結(jié)

    Angular環(huán)境搭建及簡單體驗(yàn)小結(jié)

    Angular基于TypeScript和react、vue相比 Angular更適合中大型企業(yè)級項(xiàng)目,本文通過實(shí)例代碼給大家分享Angular環(huán)境搭建及簡單體驗(yàn),感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2021-05-05
  • Angular實(shí)現(xiàn)的內(nèi)置過濾器orderBy排序與模糊查詢功能示例

    Angular實(shí)現(xiàn)的內(nèi)置過濾器orderBy排序與模糊查詢功能示例

    這篇文章主要介紹了Angular實(shí)現(xiàn)的內(nèi)置過濾器orderBy排序與模糊查詢功能,涉及AngularJS過濾器、排序及字符串遍歷、查詢等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • AngularJS中的$parse服務(wù)與$eval服務(wù)用法實(shí)例

    AngularJS中的$parse服務(wù)與$eval服務(wù)用法實(shí)例

    這篇文章主要介紹了AngularJS中的$parse服務(wù)與$eval服務(wù)用法,結(jié)合實(shí)例形式分析了AngularJS中$parse服務(wù)與$eval服務(wù)的功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2023-05-05
  • AngularJS 中文API參考手冊

    AngularJS 中文API參考手冊

    本文主要介紹AngularJS API,這里對AngularJS的指令,事件,全局API等做中文翻譯,希望能幫助有需要的小伙伴
    2016-07-07
  • angularjs 源碼解析之scope

    angularjs 源碼解析之scope

    $scope 的使用貫穿整個(gè) Angular App 應(yīng)用,它與數(shù)據(jù)模型相關(guān)聯(lián),同時(shí)也是表達(dá)式執(zhí)行的上下文.有了 $scope 就在視圖和控制器之間建立了一個(gè)通道,基于作用域視圖在修改數(shù)據(jù)時(shí)會立刻更新 $scope,同樣的 $scope 發(fā)生改變時(shí)也會立刻重新渲染視圖.
    2016-08-08

最新評論

张掖市| 泸西县| 军事| 和顺县| 溧阳市| 湘潭县| 石台县| 平湖市| 高陵县| 舞钢市| 梁河县| 班戈县| 彭水| 专栏| 靖边县| 金门县| 张家口市| 水城县| 修文县| 临沭县| 乌拉特后旗| 渭南市| 望城县| 宣化县| 长寿区| 定南县| 涿州市| 平邑县| 西乌| 定西市| 武冈市| 乐都县| 江源县| 宝丰县| 隆德县| 通河县| 潞西市| 双柏县| 榆中县| 怀柔区| 旌德县|