Heim > Backend-Entwicklung > PHP-Tutorial > php实现的一个UTF8编码转Unicode的函数

php实现的一个UTF8编码转Unicode的函数

WBOY
Freigeben: 2016-07-25 09:07:12
Original
811 Leute haben es durchsucht
  1. function Utf8ToUnicode(strUtf8)

  2. {
  3. var bstr = “”;
  4. var nTotalChars = strUtf8.length; // total chars to be processed.
  5. var nOffset = 0; // processing point on strUtf8
  6. var nRemainingBytes = nTotalChars; // how many bytes left to be converted
  7. var nOutputPosition = 0;
  8. var iCode, iCode1, iCode2; // the value of the unicode.
  9. while (nOffset {

  10. iCode = strUtf8.charCodeAt(nOffset);
  11. if ((iCode & 0×80) == 0) // 1 byte.
  12. {
  13. if ( nRemainingBytes break;
  14. bstr += String.fromCharCode(iCode & 0×7F);

  15. nOffset ++;
  16. nRemainingBytes -= 1;
  17. }
  18. else if ((iCode & 0xE0) == 0xC0) // 2 bytes
  19. {
  20. iCode1 = strUtf8.charCodeAt(nOffset + 1);
  21. if ( nRemainingBytes (iCode1 & 0xC0) != 0×80 ) // invalid pattern
  22. {
  23. break;
  24. }
  25. bstr += String.fromCharCode(((iCode & 0×3F) nOffset += 2;

  26. nRemainingBytes -= 2;
  27. }
  28. else if ((iCode & 0xF0) == 0xE0) // 3 bytes
  29. {
  30. iCode1 = strUtf8.charCodeAt(nOffset + 1);
  31. iCode2 = strUtf8.charCodeAt(nOffset + 2);
  32. if ( nRemainingBytes (iCode1 & 0xC0) != 0×80 || // invalid pattern
  33. (iCode2 & 0xC0) != 0×80 )
  34. {
  35. break;
  36. }
  37. bstr += String.fromCharCode(((iCode & 0×0F) ((iCode1 & 0×3F) (iCode2 & 0×3F));

  38. nOffset += 3;
  39. nRemainingBytes -= 3;
  40. }
  41. else // 4 or more bytes — unsupported
  42. break;
  43. }
  44. if (nRemainingBytes != 0)

  45. {
  46. // bad UTF8 string.
  47. return “”;
  48. }
  49. return bstr;

  50. }
  51. ?>
复制代码


Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage