zipalpha 发表于 2011-12-21 08:44

转换unicode十进制内码为utf-8编码

<div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li><span style="color:#000000;">function uni<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>str<span style="color:#0000CC;">)</span><br></span></li><li>
<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;$ret <span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">''</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF0000;">for</span> <span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span><span style="color:#0000FF;">i</span> <span style="color:#0000CC;">=</span> 0<span style="color:#0000CC;">;</span> $<span style="color:#0000FF;">i</span> <span style="color:#0000CC;">&lt;</span> mb_strlen<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>str<span style="color:#0000CC;">,</span> <span style="color:#FF00FF;">'utf-8'</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span> $<span style="color:#0000FF;">i</span> <span style="color:#0000CC;">=</span> $<span style="color:#0000FF;">i</span> <span style="color:#0000CC;">+</span> 1<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">"&amp;#"</span> <span style="color:#0000CC;">.</span> uniord<span style="color:#0000CC;">(</span>mb_substr<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>str<span style="color:#0000CC;">,</span> $<span style="color:#0000FF;">i</span><span style="color:#0000CC;">,</span> 1<span style="color:#0000CC;">,</span> <span style="color:#FF00FF;">'utf-8'</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">.</span> <span style="color:#FF00FF;">";"</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;return $ret<span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
<br></li><li>
function uniord<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span><span style="color:#0000FF;">u</span><span style="color:#0000CC;">)</span><br></li><li>
<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;$c <span style="color:#0000CC;">=</span> unpack<span style="color:#0000CC;">(</span><span style="color:#FF00FF;">"N"</span><span style="color:#0000CC;">,</span> mb_convert_encoding<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span><span style="color:#0000FF;">u</span><span style="color:#0000CC;">,</span> <span style="color:#FF00FF;">'UCS-4BE'</span><span style="color:#0000CC;">,</span> <span style="color:#FF00FF;">'UTF-8'</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;return $c<span style="color:#0000CC;">[</span>1<span style="color:#0000CC;">]</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
<br></li><li>
function unichr<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span><span style="color:#0000FF;">u</span><span style="color:#0000CC;">)</span><br></li><li>
<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;return mb_convert_encoding<span style="color:#0000CC;">(</span>pack<span style="color:#0000CC;">(</span><span style="color:#FF00FF;">"N"</span><span style="color:#0000CC;">,</span> $<span style="color:#0000FF;">u</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">,</span> mb_internal_encoding<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">,</span> <span style="color:#FF00FF;">'UCS-4BE'</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
<br></li><li>
function u2utf8<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>c<span style="color:#0000CC;">)</span><br></li><li>
<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">""</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;if <span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>c <span style="color:#0000CC;">&lt;</span> 0x80<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr($c<span style="color:#0000CC;">);</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span> else if <span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>c <span style="color:#0000CC;">&lt;</span> 0x800<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0xC0 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&gt;</span><span style="color:#0000CC;">&gt;</span> 6<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0x80 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&amp;</span> 0x3F<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span> else if <span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>c <span style="color:#0000CC;">&lt;</span> 0x10000<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0xE0 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&gt;</span><span style="color:#0000CC;">&gt;</span> 12<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0x80 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&gt;</span><span style="color:#0000CC;">&gt;</span> 6 <span style="color:#0000CC;">&amp;</span> 0x3F<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0x80 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&amp;</span> 0x3F<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span> else if <span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>c <span style="color:#0000CC;">&lt;</span> 0x200000<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0xF0 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&gt;</span><span style="color:#0000CC;">&gt;</span> 18<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0x80 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&gt;</span><span style="color:#0000CC;">&gt;</span> 12 <span style="color:#0000CC;">&amp;</span> 0x3F<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0x80 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&gt;</span><span style="color:#0000CC;">&gt;</span> 6 <span style="color:#0000CC;">&amp;</span> 0x3F<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str <span style="color:#0000CC;">.</span><span style="color:#0000CC;">=</span> chr<span style="color:#0000CC;">(</span>0x80 <span style="color:#0000CC;">|</span> $c <span style="color:#0000CC;">&amp;</span> 0x3F<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;return $str<span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
<br></li><li>
$source <span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">'好好学习,天天向上'</span><span style="color:#0000CC;">;</span><br></li><li>
$source <span style="color:#0000CC;">=</span> uni<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>source<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
var_dump<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>source<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span>&nbsp;<span style="color: rgb(0, 0, 204);"></span></li><li><span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span> string(69) "&amp;<span class="entity">#22909;</span>&amp;<span class="entity">#22909;</span>&amp;<span class="entity">#23398;</span>&amp;<span class="entity">#20064;</span>&amp;<span class="entity">#44;</span>&amp;<span class="entity">#22825;</span>&amp;<span class="entity">#22825;</span>&amp;<span class="entity">#21521;</span>&amp;<span class="entity">#19978;</span>"
<span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span></li><li>preg_match_all<span style="color:#0000CC;">(</span><span style="color:#FF00FF;">"/&amp;#(+);/"</span><span style="color:#0000CC;">,</span> $source<span style="color:#0000CC;">,</span> $regs<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
var_dump<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>regs<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
foreach <span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>regs<span style="color:#0000CC;">[</span>1<span style="color:#0000CC;">]</span> as $v<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;$source <span style="color:#0000CC;">=</span> str_replace<span style="color:#0000CC;">(</span><span style="color:#FF00FF;">"&amp;#$v;"</span><span style="color:#0000CC;">,</span> u2utf8<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>v<span style="color:#0000CC;">)</span><span style="color:#0000CC;">,</span> $source<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
var_dump($source<span style="color: rgb(0, 0, 204);">);</span></li><li><span style="color: rgb(0, 0, 204);">// string(25) "好好学习,天天向上" //<br></span></li></ol></div>
页: [1]
查看完整版本: 转换unicode十进制内码为utf-8编码