﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-老杨（javaer）-文章分类-NODE.JS</title><link>http://www.blogjava.net/whmily/category/53800.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 07 Aug 2013 02:52:17 GMT</lastBuildDate><pubDate>Wed, 07 Aug 2013 02:52:17 GMT</pubDate><ttl>60</ttl><item><title>node.js中 URL及HTML转GBK</title><link>http://www.blogjava.net/whmily/articles/402487.html</link><dc:creator>老杨（javaer）</dc:creator><author>老杨（javaer）</author><pubDate>Wed, 07 Aug 2013 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/whmily/articles/402487.html</guid><wfw:comment>http://www.blogjava.net/whmily/comments/402487.html</wfw:comment><comments>http://www.blogjava.net/whmily/articles/402487.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/whmily/comments/commentRss/402487.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/whmily/services/trackbacks/402487.html</trackback:ping><description><![CDATA[<div>需要安装iconv-lite或iconv模块（后者需要C编译器编译）<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">var</span>&nbsp;http&nbsp;=&nbsp;require('http');&nbsp;<br /><span style="color: #0000FF; ">var</span>&nbsp;iconv&nbsp;=&nbsp;require('iconv-lite');&nbsp;<br /><span style="color: #0000FF; ">var</span>&nbsp;BufferHelper&nbsp;=&nbsp;require('bufferhelper');<br /><span style="color: #0000FF; ">function</span>&nbsp;&nbsp;writeURL(urlPrefix,&nbsp;keyword,&nbsp;count,&nbsp;index){<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;url&nbsp;=&nbsp;urlPrefix+&nbsp;encodeURIComponent_GBK(keyword);<br />&nbsp;&nbsp;&nbsp;&nbsp;http.get(url,<span style="color: #0000FF; ">function</span>(res){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log("count:&nbsp;"+count+";&nbsp;index:&nbsp;"+(index+1)&nbsp;+&nbsp;";&nbsp;keyword:&nbsp;"+keyword);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;bufferHelper&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;BufferHelper();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res.on('data',&nbsp;<span style="color: #0000FF; ">function</span>&nbsp;(chunk)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bufferHelper.concat(chunk);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res.on('end',<span style="color: #0000FF; ">function</span>(){&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;html&nbsp;=&nbsp;iconv.decode(bufferHelper.toBuffer(),'GBK');<span style="color: #008000; ">//</span><span style="color: #008000; ">转为GBK编码</span><span style="color: #008000; "><br /></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(html);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;})<br />}<br /><br /><span style="color: #0000FF; ">function</span>&nbsp;encodeURIComponent_GBK(str){<br />&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(str==<span style="color: #0000FF; ">null</span>&nbsp;||&nbsp;<span style="color: #0000FF; ">typeof</span>(str)=='undefined'&nbsp;||&nbsp;str=='')&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;'';<br />&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;a&nbsp;=&nbsp;str.toString().split('');<br />&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">var</span>&nbsp;i=0;&nbsp;i&lt;a.length;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;ai&nbsp;=&nbsp;a[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;(ai&gt;='0'&nbsp;&amp;&amp;&nbsp;ai&lt;='9')&nbsp;||&nbsp;(ai&gt;='A'&nbsp;&amp;&amp;&nbsp;ai&lt;='Z')&nbsp;||&nbsp;(ai&gt;='a'&nbsp;&amp;&amp;&nbsp;ai&lt;='z')&nbsp;||&nbsp;ai==='.'&nbsp;||&nbsp;ai==='-'&nbsp;||&nbsp;ai==='_')&nbsp;<span style="color: #0000FF; ">continue</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;b&nbsp;=&nbsp;iconv.encode(ai,&nbsp;'gbk');<span style="color: #008000; ">//</span><span style="color: #008000; ">转为GBK编码</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;e&nbsp;=&nbsp;[''];&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">var</span>&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&lt;b.length;&nbsp;j++)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.push(&nbsp;b.toString('hex',&nbsp;j,&nbsp;j+1).toUpperCase()&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;=&nbsp;e.join('%');<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a.join('');<br />}</div></div><img src ="http://www.blogjava.net/whmily/aggbug/402487.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/whmily/" target="_blank">老杨（javaer）</a> 2013-08-07 09:37 <a href="http://www.blogjava.net/whmily/articles/402487.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>