"PHP" / Говнокод #10961 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
function CP1251toUTF8($string) {
    $out = '';
    for ($i = 0; $i < strlen($string); ++$i) {
        $ch = ord($string{$i});
        if ($ch < 0x80)
            $out .= chr($ch);
        else
        if ($ch >= 0xC0)
            if ($ch < 0xF0)
                $out .= "\xD0" . chr(0x90 + $ch - 0xC0); // А-Я, а-п (A-YA, a-p) 
            else
                $out .= "\xD1" . chr(0x80 + $ch - 0xF0); // р-я (r-ya) 
                else
            switch ($ch) {
                case 0xA8: $out .= "\xD0\x81";
                    break; // YO 
                case 0xB8: $out .= "\xD1\x91";
                    break; // yo 
// ukrainian 
                case 0xA1: $out .= "\xD0\x8E";
                    break; // Ў (U) 
                case 0xA2: $out .= "\xD1\x9E";
                    break; // ў (u) 
                case 0xAA: $out .= "\xD0\x84";
                    break; // Є (e) 
                case 0xAF: $out .= "\xD0\x87";
                    break; // Ї (I..) 
                case 0xB2: $out .= "\xD0\x86";
                    break; // I (I) 
                case 0xB3: $out .= "\xD1\x96";
                    break; // i (i) 
                case 0xBA: $out .= "\xD1\x94";
                    break; // є (e) 
                case 0xBF: $out .= "\xD1\x97";
                    break; // ї (i..) 
// chuvashian 
                case 0x8C: $out .= "\xD3\x90";
                    break; // ? (A) 
                case 0x8D: $out .= "\xD3\x96";
                    break; // ? (E) 
                case 0x8E: $out .= "\xD2\xAA";
                    break; // ? (SCH) 
                case 0x8F: $out .= "\xD3\xB2";
                    break; // ? (U) 
                case 0x9C: $out .= "\xD3\x91";
                    break; // ? (a) 
                case 0x9D: $out .= "\xD3\x97";
                    break; // ? (e) 
                case 0x9E: $out .= "\xD2\xAB";
                    break; // ? (sch) 
                case 0x9F: $out .= "\xD3\xB3";
                    break; // ? (u) 
            }
    }
    return $out;
}

iconv? Не, не слышал.

Запостил: 7ion 7ion, (Updated )

Комментарии (6) RSS

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8