首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

抓取下来的数据,该如何样处理

2012-05-20 
抓取下来的数据,该怎么样处理?试了下带\u的都是Unicode,我用 HttpUtility.HtmlDecode(str)转换不成功,原来

抓取下来的数据,该怎么样处理?
试了下带\u的都是Unicode,我用 HttpUtility.HtmlDecode(str)转换不成功,原来是什么样结果还是什么样。怎么样才能把下面代码中的Unicode转成汉字?


var data = {"abstract":{"show":"","all":""},"content":{"show":"<\/a>
\u7b2c\u4e09\u4e2a\u4e3b\u8981\u5185\u5bb9\u662f\u5173\u4e8e\u8bbe\u5907\u9a71\u52a8\u5b89\u88c5\uff08\u7b2c12\uff5e14\u7ae0\uff09\u3002\u7b2c12\u7ae0\u8bb2\u7cfb\u7edf\u5b89\u88c5\u6a21\u5757\uff0c\u4ece\u603b\u4f53\u89d2\u5ea6\u9610\u8ff0\u7cfb\u7edf\u548c\u8bbe\u5907\u9a71\u52a8\u5982\u4f55\u914d\u5408\u5b8c\u597d\u5730\u8fdb\u884c\u5de5\u4f5c\uff1b\u7b2c13\u7ae0\u8bb2\u8ff0INF\u5b89\u88c5\u6587\u4ef6\u7684\u7ec6\u8282\uff0c\u5305\u62ec\u5404\u4e2a\u57df\u7684\u4f5c\u7528\uff0c\u4ee5\u53ca\u8bf8\u591a\u5b89\u88c5\u6307\u4ee4\u7684\u4f7f\u7528\u3002\u7b2c14\u7ae0\u8bb2\u5982\u4f55\u7f16\u5199\u9a71\u52a8\u5b89\u88c5\u8f6f\u4ef6\u3002
\u5269\u4f59\u7684\u4e00\u4e9b\u7ae0\u8282\uff0c\u5206\u522b\u662f\u5173\u4e8e\u9a71\u52a8\u5165\u95e8\uff08\u7b2c1\u30012\u7ae0\uff09\u3001Windbg\u8c03\u8bd5\u547d\u4ee4\uff08\u7b2c8\u7ae0\uff09\u3001\u5185\u6838\u540c\u6b65\uff08\u7b2c9\u7ae0\uff09\u7b49\u5185\u5bb9\u3002<\/div>

\u7b2c\u4e09\u4e2a\u4e3b\u8981\u5185\u5bb9\u662f\u5173\u4e8e\u8bbe\u5907\u9a71\u52a8\u5b89\u88c5\uff08\u7b2c12\uff5e14\u7ae0\uff09\u3002\u7b2c12\u7ae0\u8bb2\u7cfb\u7edf\u5b89\u88c5\u6a21\u5757\uff0c\u4ece\u603b\u4f53\u89d2\u5ea6\u9610\u8ff0\u7cfb\u7edf\u548c\u8bbe\u5907\u9a71\u52a8\u5982\u4f55\u914d\u5408\u5b8c\u597d\u5730\u8fdb\u884c\u5de5\u4f5c\uff1b\u7b2c13\u7ae0\u8bb2\u8ff0INF\u5b89\u88c5\u6587\u4ef6\u7684\u7ec6\u8282\uff0c\u5305\u62ec\u5404\u4e2a\u57df\u7684\u4f5c\u7528\uff0c\u4ee5\u53ca\u8bf8\u591a\u5b89\u88c5\u6307\u4ee4\u7684\u4f7f\u7528\u3002\u7b2c14\u7ae0\u8bb2\u5982\u4f55\u7f16\u5199\u9a71\u52a8\u5b89\u88c5\u8f6f\u4ef6\u3002
\u5269\u4f59\u7684\u4e00\u4e9b\u7ae0\u8282\uff0c\u5206\u522b\u662f\u5173\u4e8e\u9a71\u52a8\u5165\u95e8\uff08\u7b2c1\u30012\u7ae0\uff09\u3001Windbg\u8c03\u8bd5\u547d\u4ee4\uff08\u7b2c8\u7ae0\uff09\u3001\u5185\u6838\u540c\u6b65\uff08\u7b2c9\u7ae0\uff09\u7b49\u5185\u5bb9\u3002
\u672c\u4e66\u9002\u5408\u4e00\u822c\u5165\u95e8\u7ea7\u5185\u6838\u7a0b\u5e8f\u5458\uff0c\u5bf9WDF\u6709\u5174\u8da3\uff0c\u51c6\u5907\u5f00\u53d1USB\u62161394\u8bbe\u5907\u9a71\u52a8\u8005\uff0c\u672c\u4e66\u5c24\u5176\u6709\u7528\u3002\u672c\u4e66\u5bf9\u4e8e\u5165\u884c\u8f83\u4e45\uff0c\u7ecf\u9a8c\u4e30\u5bcc\u7684\u7a0b\u5e8f\u5458\uff0c\u4e5f\u5177\u6709\u4e00\u5b9a\u7684\u53c2\u8003\u4ef7\u503c\u3002"},"authorintro":{"show":"","all":""},"catalog":{"show":"<\/a>
\u7b2c1\u7ae0 Hello World\u9a71\u52a8 
1.1 \u4eceHello World\u5f00\u59cb 
1.2 \u865a\u62df\u73af\u5883 
1.3 \u5c0f\u7ed3 
\u7b2c2\u7ae0 \u5546\u4e1a\u9a71\u52a8\u5f00\u53d1\u6280\u672f 
2.1 \u5efa\u7acb\u5f00\u53d1\u8c03\u8bd5\u73af\u5883 
2.2 64\u4f4d\u9a71\u52a8\u5f00\u53d1\u6280\u672f 
2.3 \u9a71\u52a8\u7a0b\u5e8f\u7684\u53d1\u5e03\u4e0e\u6d4b\u8bd5 
2.4 \u5c0f\u7ed3 
\u7b2c3\u7ae0 WDF\u6982\u8ff0 
3.1 \u4e3b\u8981\u7279\u70b9 
3.2 \u6846\u67b6\u89c6\u56fe 
3.3 \u517c\u5bb9\u6027 
3.4 \u5bf9\u8c61\u6a21\u578b 
3.5 \u9a71\u52a8\u5bf9\u8c61\u548c\u8bbe\u5907\u5bf9\u8c61 <\/div>
\u663e\u793a\u5168\u90e8\u4fe1\u606f<\/a><\/div>","all":"\u7b2c1\u7ae0 Hello World\u9a71\u52a8 
1.1 \u4eceHello World\u5f00\u59cb 
1.2 \u865a\u62df\u73af\u5883 
1.3 \u5c0f\u7ed3 
\u7b2c2\u7ae0 \u5546\u4e1a\u9a71\u52a8\u5f00\u53d1\u6280\u672f 
2.1 \u5efa\u7acb\u5f00\u53d1\u8c03\u8bd5\u73af\u5883 
2.2 64\u4f4d\u9a71\u52a8\u5f00\u53d1\u6280\u672f 
2.3 \u9a71\u52a8\u7a0b\u5e8f\u7684\u53d1\u5e03\u4e0e\u6d4b\u8bd5 
2.4 \u5c0f\u7ed3 
\u7b2c3\u7ae0 WDF\u6982\u8ff0 
3.1 \u4e3b\u8981\u7279\u70b9 


3.2 \u6846\u67b6\u89c6\u56fe 
3.3 \u517c\u5bb9\u6027 
3.4 \u5bf9\u8c61\u6a21\u578b 
3.5 \u9a71\u52a8\u5bf9\u8c61\u548c\u8bbe\u5907\u5bf9\u8c61 
3.6 IO\u6a21\u578b 
3.7 PNP\u548c\u7535\u6e90\u6a21\u578b 
3.8 \u5c0f\u7ed3 
\u7b2c4\u7ae0 WDF USB\u8bbe\u5907\u9a71\u52a8\u5f00\u53d1 
4.1 USB\u8bbe\u5907\u786c\u4ef6\u7ed3\u6784 
4.2 USB\u8f6f\u4ef6\u7ed3\u6784 
4.3 \u5185\u6838\u5f00\u53d1 
4.4 \u6570\u636eI\/O\u64cd\u4f5c 
4.5 \u8bbe\u5907\u63a7\u5236 
4.6 \u7528\u6237\u7a0b\u5e8f 
4.7 \u5c0f\u7ed3 
\u7b2c5\u7ae0 WDF 1394\u9a71\u52a8\u5f00\u53d1 
5.1 1394\u4e00\u5e2d\u8c08 
5.2 \u53d1\u9001\u8bf7\u6c42 
5.3 \u603b\u7ebf\u91cd\u7f6e\u4e0e\u8ba1\u6570 
5.4 PNP\u64cd\u4f5c 
5.5 \u5f02\u6b65\u901a\u4fe1 
5.6 \u7b49\u65f6\u901a\u4fe1 
5.7 \u5176\u4ed6\u64cd\u4f5c 
5.8 \u5b89\u88c5\u4e0e\u6d4b\u8bd5 
5.9 \u5c0f\u7ed3 
\u7b2c6\u7ae0 \u5185\u6838\u9a71\u52a8C++\u7f16\u7a0b 
6.1 \u9a71\u52a8\u4e2d\u7684\u7c7b 
6.2 \u7c7b\u5c01\u88c5\u7684\u9a71\u52a8\u7a0b\u5e8f 
6.3 \u591a\u6001 
6.4 \u5c0f\u7ed3 
\u7b2c7\u7ae0 WDF\u9a71\u52a8\u6d4b\u8bd5 
7.1 WDF\u9519\u8bef 
7.2 WDF\u6269\u5c55\u8c03\u8bd5\u547d\u4ee4 
7.3 WDFTester 
7.4 WDFVerifier 
7.5 \u5c0f\u7ed3 
\u7b2c8\u7ae0 \u8c03\u8bd5\u547d\u4ee4\u8be6\u89e3 
8.1 \u6982\u8ff0 
8.2 \u7b26\u53f7\u4e0e\u6e90\u7801 
8.3 \u8fdb\u7a0b\u4e0e\u7ebf\u7a0b 
8.4 \u65ad\u70b9 
8.5 \u5185\u5b58\u547d\u4ee4 
8.6 \u5c0f\u7ed3 
\u7b2c9\u7ae0 \u5185\u6838\u540c\u6b65 
\u7b2c10\u7ae0 \u97f3\u9891\u9a71\u52a8\u5f00\u53d1 
\u7b2c11\u7ae0 ASIO\u865a\u62df\u58f0\u5361 
\u7b2c12\u7ae0 \u8bbe\u5907\u9a71\u52a8\u5b89\u88c5\u5165\u95e8 
\u7b2c13\u7ae0 \u6df1\u5165\u89e3\u6790INF\u6587\u4ef6 
\u7b2c14\u7ae0 \u8bbe\u8ba1\u9a71\u52a8\u5b89\u88c5\u7a0b\u5e8f 
\u9644\u5f55A CY001 USB\u5f00\u53d1\u677f 
\u9644\u5f55B VisualKD + VMWare\u5b9e\u73b0\u5355\u673a\u5185\u6838\u8c03\u8bd5 "},"mediafeedback":{"show":""},"extract":{"show":"","all":""}}; var no_txt = "
\u672c\u5546\u54c1\u6682\u65e0\u8be6\u60c5\u3002<\/p>"; if(page_type=="mall"){ var content = data.content; if($.trim(content)!="") $("#detail_all").html(content); else $("#detail_all").html(no_txt); $("#detail_wait").hide(); $("#detail_all").show(); }else{ var abstract = data.abstract; var content = data.content; var authorintro = data.authorintro; var catalog = data.catalog; var extract = data.extract; if($.trim(data.mediafeedback["show"])!="" || $.trim(abstract["all"])!="" || $.trim(content["all"])!="" || $.trim(authorintro["all"])!="" || $.trim(catalog["all"])!="" || $.trim(extract["all"])!=""){ if($.trim(data.mediafeedback["show"])==""){ $("#mediafeedback").html(""); }else{ $("#mediafeedback").html($("#mediafeedback").html()+data.mediafeedback["show"]); } if($.trim(abstract["all"])==""){ $("#abstract").html(""); } else{ $("#abstract").html($("#abstract").html()+abstract["show"]); } if($.trim(content["all"])==""){ $("#content").html(""); }else{ $("#content").html($("#content").html()+content["show"]); } if($.trim(authorintro["all"])==""){ $("#authorintro").html(""); }else{ $("#authorintro").html($("#authorintro").html()+authorintro["show"]); } if($.trim(catalog["all"])==""){ $("#catalog").html(""); }else{ $("#catalog").html($("#catalog").html()+catalog["show"]); } if($.trim(extract["all"])==""){ $("#extract").html(""); }else{ $("#extract").html($("#extract").html()+extract["show"]); } }else{ $("#detail_all").html(no_txt); } $("#detail_wait").hide(); $("#detail_all").show(); }






[解决办法]
HttpUtility.HtmlDecode(str,Encoding.Uncode)//试试这样写,反正就这样的格式,怎么搞自己从写下吧
[解决办法]
测试:

string sadf = "var data = {\"abstract\":{\"show\":\"\",\"all\":\"\"},\"content\":{\"show\":\"<\\/a>"
+ "\u7b2c\u4e09\u4e2a"
+ "\"},\"mediafeedback\":{\"show\":\"\"},\"extract\":{\"show\":\"\",\"all\":\"\"}}; var no_txt = \""
+ "\u672c\u5546\u54c1\u6682\u65e0\u8be6\u60c5\u3002<\\/p>\"; ";

输出结果:

var data = {"abstract":{"show":"","all":""},"content":{"show":"<\/a>第三个"},"mediafeedback":{"show":""},"extract":{"show":"","all":""}}; var no_txt = "本商品暂无详情。<\/p>";
[解决办法]
原因在于你获取的时候用的是Encoding.Default,肯定不是Encoding.Unicode,缺省可能是UTF8吧,所以获取来的数据里,\u523b\u5256被当作普通英文和数字,也就是说,\u没有被视作转义字符。
而string testb = "\u523b\u5256"里,\u被认出是转义字符,所以中文会正确显示。
解决方法(参考了stackoverflow: http://stackoverflow.com/questions/1615559/converting-unicode-strings-to-escaped-ascii-string):

C# code
                string test1 = Regex.Replace(myReader.ReadToEnd(), @"\\u(?<Value>[a-zA-Z0-9]{4})",                     m => {                        return ((char)int.Parse(m.Groups["Value"].Value,                     System.Globalization.NumberStyles.HexNumber)).ToString();}); 

热点排行