→ При разработке сайта лендинг в подарок! ЖМИ! ←
Мар
1

Конвертируем windows-1251 в utf-8 с помощью php

Задача тривиальная до банальности: переконвертировать строку из кодировки windows-1251 в кодировку utf-8. Подобная задача может возникнуть при работе с некоторыми модулями для Joomla. И именно тогда, когда на более глубокое понимание проблемы просто нет времени, ведь цены на компьютеры в Тюмени пока ещё находятся на низких уровнях. Задача перекодировки текста из windows-1251 в utf-8 с помощью php решается примерно так:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
/*
*Функция перекодировки windows-1251 -> utf-8
*/
ows-1251 -> utf-8
*/
 
function win2utf($str)
{
    static $table = array(
    "\xA8" => "\xD0\x81",
    "\xB8" => "\xD1\x91",
    "\xA1" => "\xD0\x8E",
    "\xA2" => "\xD1\x9E",
    "\xAA" => "\xD0\x84",
    "\xAF" => "\xD0\x87",
    "\xB2" => "\xD0\x86",
    "\xB3" => "\xD1\x96",
    "\xBA" => "\xD1\x94",
    "\xBF" => "\xD1\x97",
    "\x8C" => "\xD3\x90",
    "\x8D" => "\xD3\x96",
    "\x8E" => "\xD2\xAA",
    "\x8F" => "\xD3\xB2",
    "\x9C" => "\xD3\x91",
    "\x9D" => "\xD3\x97",
    "\x9E" => "\xD2\xAB",
    "\x9F" => "\xD3\xB3",
    );
    r#[\x80-\xFF]#se',
('  ' "$0" >= "\xF0"    ' "$0" >= "\xF0" ? "\xD1".chr(ord("$0")-0x70) :
                       ("$0" >= "\xC0" ? "\xD0".chr(ord("$0")-0x30) :
                        (isset($table["$0"]) ? $table["$0"] : "")
                       )

А применяется примерно так

1
echo win2utf('тест в windows-1251'12

Пользуйтесь! А после этого можете свою девушку на танец живота отправить. Всё будет веселее, когда вам придется «колдовать с бубном» над очередной проблемой программного характера.

2 коммент. к записи “Конвертируем windows-1251 в utf-8 с помощью php”

  • sinneren 24 марта 2011 - 18:21

    Пригодилось для сапы, спасибо большое

  • K_E_V_in 24 марта 2011 - 22:57

    Пользуйтесь на здоровье!

Прокомментировать

Рубрики

Наши услуги

В прямом эфире