php实现的一个UTF8编码转Unicode的函数
Freigeben: 2016-07-25 09:07:12
Original
811 Leute haben es durchsucht
-
-
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;
- }
if (nRemainingBytes != 0)
- {
- // bad UTF8 string.
- return “”;
- }
return bstr;
- }
- ?>
-
复制代码
|
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31