<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LAVA WORLD &#187; JSON</title>
	<atom:link href="http://www.vpnall.com/tag/json/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vpnall.com</link>
	<description>又一个森林Q群:52130297(IT聊天群)</description>
	<lastBuildDate>Fri, 03 Sep 2010 06:42:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>用js的json_decode解决JSON中文编码问题</title>
		<link>http://www.vpnall.com/2010/01/%e7%94%a8js%e7%9a%84json_decode%e8%a7%a3%e5%86%b3json%e4%b8%ad%e6%96%87%e7%bc%96%e7%a0%81%e9%97%ae%e9%a2%98/</link>
		<comments>http://www.vpnall.com/2010/01/%e7%94%a8js%e7%9a%84json_decode%e8%a7%a3%e5%86%b3json%e4%b8%ad%e6%96%87%e7%bc%96%e7%a0%81%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 11:50:57 +0000</pubDate>
		<dc:creator>lava</dc:creator>
				<category><![CDATA[代码]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[json_decode]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.vpnall.com/?p=612</guid>
		<description><![CDATA[最近写个程序 用jquery读取PHP的json信息,一直没注意中文的问题,今天输出中文居然出现类似&#8221;\u6210\u529f&#8221;的字符,网上查了一下,因为我页面全部用utf8编码,不存在meta的问题.
最后找到一个js... ]]></description>
			<content:encoded><![CDATA[<p>最近写个程序 用jquery读取PHP的json信息,一直没注意中文的问题,今天输出中文居然出现类似&#8221;\u6210\u529f&#8221;的字符,网上查了一下,因为我页面全部用utf8编码,不存在meta的问题.</p>
<p>最后找到一个js版的json_decode,果然有效,贴一下代码</p>

<div class="wp_codebox"><table><tr id="p6122"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code" id="p612code2"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> json_decode <span style="color: #009900;">&#40;</span>str_json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
    <span style="color: #003366; font-weight: bold;">var</span> json <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">window</span>.<span style="color: #660066;">JSON</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> json <span style="color: #339933;">===</span> <span style="color: #3366CC;">'object'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000066; font-weight: bold;">typeof</span> json.<span style="color: #660066;">parse</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'function'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">return</span> json.<span style="color: #660066;">parse</span><span style="color: #009900;">&#40;</span>str_json<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>err<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span>err <span style="color: #000066; font-weight: bold;">instanceof</span> SyntaxError<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Unexpected error type in json_decode()'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">php_js</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">php_js</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">php_js</span>.<span style="color: #660066;">last_error_json</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">4</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// usable by json_last_error()</span>
            <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> 
    <span style="color: #009900;">&#125;</span>    
    <span style="color: #003366; font-weight: bold;">var</span> cx <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> j<span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> text <span style="color: #339933;">=</span> str_json<span style="color: #339933;">;</span>
    cx.<span style="color: #660066;">lastIndex</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>cx.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        text <span style="color: #339933;">=</span> text.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>cx<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\\</span>u'</span> <span style="color: #339933;">+</span>
            <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'0000'</span> <span style="color: #339933;">+</span> a.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/^[\],:{}\s]*$/</span><span style="color: #009900;">&#41;</span>.
        <span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>text.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/\\(?:[&quot;\\\/bfnrt]|u[0-9a-fA-F]{4})/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'@'</span><span style="color: #009900;">&#41;</span>.
            <span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/&quot;[^&quot;\\\n\r]*&quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">']'</span><span style="color: #009900;">&#41;</span>.
            <span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/(?:^|:|,)(?:\s*\[)+/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        j <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'('</span> <span style="color: #339933;">+</span> text <span style="color: #339933;">+</span> <span style="color: #3366CC;">')'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
        <span style="color: #000066; font-weight: bold;">return</span> j<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">php_js</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">php_js</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">php_js</span>.<span style="color: #660066;">last_error_json</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">4</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// usable by json_last_error()</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>原出处:http://phpjs.org/functions/json_decode:456</p>

	标签：<a href="http://www.vpnall.com/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://www.vpnall.com/tag/javascript/" title="JavaScript" rel="tag">JavaScript</a>, <a href="http://www.vpnall.com/tag/js/" title="js" rel="tag">js</a>, <a href="http://www.vpnall.com/tag/json/" title="JSON" rel="tag">JSON</a>, <a href="http://www.vpnall.com/tag/json_decode/" title="json_decode" rel="tag">json_decode</a>, <a href="http://www.vpnall.com/tag/php/" title="php" rel="tag">php</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.vpnall.com/2009/03/40-stand-alone-javascript-libraries-for-specific-purposes2/" title="[转]40 个轻量级 JavaScript 库 （下） (2009-03-07)">[转]40 个轻量级 JavaScript 库 （下）</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/09/%e9%be%99%e5%8d%9aajax%e6%a1%86%e6%9e%b6/" title="龙博AJAX框架 (2009-09-08)">龙博AJAX框架</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/06/%e6%95%b4%e7%90%86%e5%ae%9e%e7%94%a8javascript%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7/" title="整理实用JavaScript开发工具 (2009-06-24)">整理实用JavaScript开发工具</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/use-php-ajax-crossdomainhttp-get/" title="利用PHP实现AJAX跨域HTTP GET (2009-03-12)">利用PHP实现AJAX跨域HTTP GET</a> (4)</li>
	<li><a href="http://www.vpnall.com/2009/10/javascript-refresh-page/" title="[转]利用javascript实现web页面刷新的方法 (2009-10-03)">[转]利用javascript实现web页面刷新的方法</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/jquery-ajax-introduction/" title="[转]jQuery Ajax 全解析 (2009-03-03)">[转]jQuery Ajax 全解析</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/10/%e8%bd%acjavascript%e6%8a%8a%e6%95%b0%e5%ad%97%e6%a0%bc%e5%bc%8f%e5%8c%96%e8%bd%ac%e6%8d%a2%e6%88%90%e8%b4%a7%e5%b8%81%e5%9e%8b/" title="[转]javascript把数字格式化转换成货币型 (2009-10-08)">[转]javascript把数字格式化转换成货币型</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/04/%e8%bd%ac25-%e4%b8%aa%e5%9c%a8-web-%e4%b8%ad%e5%b5%8c%e5%85%a5%e5%9b%be%e8%a1%a8%e7%9a%84%e5%85%8d%e8%b4%b9%e8%b5%84%e6%ba%90/" title="[转]25 个在 Web 中嵌入图表的免费资源 (2009-04-19)">[转]25 个在 Web 中嵌入图表的免费资源</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.vpnall.com/2010/01/%e7%94%a8js%e7%9a%84json_decode%e8%a7%a3%e5%86%b3json%e4%b8%ad%e6%96%87%e7%bc%96%e7%a0%81%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
