php实现的一个UTF8编码转Unicode的函数
-
-
function utf8tounicode(strutf8)
- {
- var bstr = “”;
- var ntotalchars = strutf8.length; // total chars to be processed.
- var noffset = 0; // processing point on strutf8
- var nremainingbytes = ntotalchars; // how many bytes left to be converted
- var noutputposition = 0;
- var icode, icode1, icode2; // the value of the unicode.
while (nOffset {
- iCode = strUtf8.charCodeAt(nOffset);
- if ((iCode & 0×80) == 0) // 1 byte.
- {
- if ( nRemainingBytes break;
bstr += String.fromCharCode(iCode & 0×7F);
- nOffset ++;
- nRemainingBytes -= 1;
- }
- else if ((iCode & 0xE0) == 0xC0) // 2 bytes
- {
- iCode1 = strUtf8.charCodeAt(nOffset + 1);
- if ( nRemainingBytes (iCode1 & 0xC0) != 0×80 ) // invalid pattern
- {
- break;
- }
bstr += String.fromCharCode(((iCode & 0×3F) nOffset += 2;
- nRemainingBytes -= 2;
- }
- else if ((iCode & 0xF0) == 0xE0) // 3 bytes
- {
- iCode1 = strUtf8.charCodeAt(nOffset + 1);
- iCode2 = strUtf8.charCodeAt(nOffset + 2);
- if ( nRemainingBytes (iCode1 & 0xC0) != 0×80 || // invalid pattern
- (iCode2 & 0xC0) != 0×80 )
- {
- break;
- }
bstr += String.fromCharCode(((iCode & 0×0F) ((iCode1 & 0×3F) (iCode2 & 0×3F));
- nOffset += 3;
- nRemainingBytes -= 3;
- }
- else // 4 or more bytes — unsupported
- break;
- }
立即学习“PHP免费学习笔记(深入)”;
if (nRemainingBytes != 0)
- {
- // bad UTF8 string.
- return “”;
- }
return bstr;
- }
- ?>
-
复制代码
|
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn