<span>public</span> <span>function</span> utf8_unicode(<span>$str</span><span>) {
</span><span>$unicode</span> = <span>array</span><span>();
</span><span>$values</span> = <span>array</span><span>();
</span><span>$lookingFor</span> = 1<span>;
</span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>strlen</span>( <span>$str</span> ); <span>$i</span>++<span> ) {
</span><span>$thisValue</span> = <span>ord</span>( <span>$str</span>[ <span>$i</span><span> ] );
</span><span>if</span> ( <span>$thisValue</span> < <span>ord</span>('A'<span>) ) {
</span><span>//</span><span> exclude 0-9</span>
<span>if</span> (<span>$thisValue</span> >= <span>ord</span>('0') && <span>$thisValue</span> <= <span>ord</span>('9'<span>)) {
</span><span>//</span><span> number</span>
<span>$unicode</span>[] = <span>chr</span>(<span>$thisValue</span><span>);
}
</span><span>else</span><span> {
</span><span>$unicode</span>[] = '%'.<span>dechex</span>(<span>$thisValue</span><span>);
}
} </span><span>else</span><span> {
</span><span>if</span> ( <span>$thisValue</span> < 128<span>) {
</span><span>$unicode</span>[] = <span>$str</span>[ <span>$i</span><span> ];
} </span><span>else</span><span> {
</span><span>if</span> ( <span>count</span>( <span>$values</span> ) == 0<span> ) {
</span><span>$lookingFor</span> = ( <span>$thisValue</span> < 224 ) ? 2 : 3<span>;
}
</span><span>$values</span>[] = <span>$thisValue</span><span>;
</span><span>if</span> ( <span>count</span>( <span>$values</span> ) == <span>$lookingFor</span><span> ) {
</span><span>$number</span> = ( <span>$lookingFor</span> == 3 ) ?<span>
( ( </span><span>$values</span>[0] % 16 ) * 4096 ) + ( ( <span>$values</span>[1] % 64 ) * 64 ) + ( <span>$values</span>[2] % 64 ):<span>
( ( </span><span>$values</span>[0] % 32 ) * 64 ) + ( <span>$values</span>[1] % 64<span> );
</span><span>$number</span> = <span>dechex</span>(<span>$number</span><span>);
</span><span>$unicode</span>[] = (<span>strlen</span>(<span>$number</span>)==3)?"\u0".<span>$number</span>:"\u".<span>$number</span><span>;
</span><span>$values</span> = <span>array</span><span>();
</span><span>$lookingFor</span> = 1<span>;
} </span><span>//</span><span> if</span>
} <span>//</span><span> if</span>
<span> }
} </span><span>//</span><span> for</span>
<span>return</span> <span>implode</span>("",<span>$unicode</span><span>);
}</span>参考文章:http://randomchaos.com/documents/?source=php_and_unicode
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号