찾다

 >  Q&A  >  본문

node.js - 做爬虫时,偶尔会爬到这样的内容天堂向左,如何转为中文?

我想了解编码方面的知识,有好的书籍推荐吗,谢谢!!

感谢两位的回答,根据提示我自己写了个程序测试,OK的,还会不会有其他情况呢?

var code10, code16, zh;

code10 = '天堂向左,深圳向右';

zh = code10.replace(/&#(\d+);/g, function($, $1) {return String.fromCharCode($1)});

console.log(zh);

code16 = zh.replace(/[^\u0000-\u00ff]/g, function($) {return '&#x' + $.codePointAt(0).toString(16) + ';';});

console.log(code16);

zh = code16.replace(/&#x(\w+);/g, function($, $1) {return String.fromCharCode(parseInt($1, 16))});

console.log(zh);
PHP中文网PHP中文网2782일 전586

모든 응답(2)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-17 13:25:21

    开头是十进制编码,而转为中文需要注意的是中文是多字符编码。可以使用javascript的函数

    String.fromCharCode(str.substr(2),10)
    

    配合循环写个小工具在前端就处理好再爬,例如`String.fromCharCode("天".substr(2),10)
    得到"天"。
    今天正好写了一个小工具,

    https://github.com/hunnble/JavaScript_learning/blob/master/change-radix.html

    在浏览器中打开然后输入你要转码的字符然后把进制选成10之后decode就可以了。

    회신하다
    0
  • PHPz

    PHPz2017-04-17 13:25:21

    〹这样的实体中的数字12345就是十进制表示的unicode编码,转换成对应的unicode字符就行了。

    如果是ካ这样的,其中的12ab就是十六进制表示的unicode编码。

    회신하다
    0
  • 취소회신하다