- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
function utf8_to_cp1251 ($txt) {
$out_arr = array (
chr(208), chr(192), chr(193), chr(194),chr(195), chr(196), chr(197), chr(168),
chr(198), chr(199), chr(200), chr(201),chr(202), chr(203), chr(204), chr(205),
chr(206), chr(207), chr(209), chr(210),chr(211), chr(212), chr(213), chr(214),
chr(215), chr(216), chr(217), chr(218),chr(219), chr(220), chr(221), chr(222),
chr(223), chr(224), chr(225), chr(226),chr(227), chr(228), chr(229), chr(184),
chr(230), chr(231), chr(232), chr(233),chr(234), chr(235), chr(236), chr(237),
chr(238), chr(239), chr(240), chr(241),chr(242), chr(243), chr(244), chr(245),
chr(246), chr(247), chr(248), chr(249),chr(250), chr(251), chr(252), chr(253),
chr(254), chr(255)
);
$in_arr = array (
chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
chr(208).chr(149), chr(208).chr(129), chr(208).chr(150),chr(208).chr(151), chr(208).chr(152), chr(208).chr(153),
chr(208).chr(154), chr(208).chr(155), chr(208).chr(156),chr(208).chr(157), chr(208).chr(158), chr(208).chr(159),
chr(208).chr(161), chr(208).chr(162), chr(208).chr(163),chr(208).chr(164), chr(208).chr(165), chr(208).chr(166),
chr(208).chr(167), chr(208).chr(168), chr(208).chr(169),chr(208).chr(170), chr(208).chr(171), chr(208).chr(172),
chr(208).chr(173), chr(208).chr(174), chr(208).chr(175),chr(208).chr(176), chr(208).chr(177), chr(208).chr(178),
chr(208).chr(179), chr(208).chr(180), chr(208).chr(181),chr(209).chr(145), chr(208).chr(182), chr(208).chr(183),
chr(208).chr(184), chr(208).chr(185), chr(208).chr(186),chr(208).chr(187), chr(208).chr(188), chr(208).chr(189),
chr(208).chr(190), chr(208).chr(191), chr(209).chr(128),chr(209).chr(129), chr(209).chr(130), chr(209).chr(131),
chr(209).chr(132), chr(209).chr(133), chr(209).chr(134),chr(209).chr(135), chr(209).chr(136), chr(209).chr(137),
chr(209).chr(138), chr(209).chr(139), chr(209).chr(140),chr(209).chr(141), chr(209).chr(142), chr(209).chr(143)
);
$txt = str_replace($in_arr,$out_arr,$txt);
return $txt;
}
Vindicar 26.12.2012 10:48 # +9
anonimb84a2f6fd141 26.12.2012 16:50 # 0
ErmineMD 26.12.2012 15:26 # 0
Dummy00001 26.12.2012 15:57 # 0
если я правильно помню, то пыху на данные в строке посрать.
крутые хацкеры извращаются потому что utf-8 "медленее" и/или cp1251 есть одна и единственная тру кодировка.
ErmineMD 26.12.2012 16:02 # 0
Dummy00001 26.12.2012 16:12 # +2
Нет, нельзя.
> Тут так нельзя?
Нет такой абстрактной концепции как код символа. Код символа существует только как часть кодировки. Поэтому то собственно говоря "кодовая страница" и называется "кодовой" - потому что она определяет какое число/код обозначает какой символ.
> но таким образом мы будем зависеть от кодировки страницы.
Запись символов кодами или простой строкой ВСЕГДА зависит от кодировки. Поэтому например клиент/бровзер тоже должен знать в какой кодировке ему приходят данные что бы их корректно отобразить как символы.
Простое правило: стандартизируешь проект на одной кодировке и только ей исключительно и пользуешься, включая базу.
ErmineMD 26.12.2012 16:20 # 0
Dummy00001 26.12.2012 16:26 # 0
anonimb84a2f6fd141 26.12.2012 16:58 # 0
Ещё есть http://www.artlebedev.ru/tools/decoder/ (вот он может в множественное)
Dummy00001 26.12.2012 17:29 # 0
проблема это когда *часть* символов могут/не могут быть представлены в промежуточной кодировке. 90% процентов текста выглядит ОК - 10% кракозябы (или наоборот). русских кодировок /ограниченое/ количество - в отличии на пример от кодировок (и их версий!) для южнослявянских языков которые пользуются латинским алфавитом.
anonimb84a2f6fd141 26.12.2012 17:51 # 0
Пожалуйста.
i-- 26.12.2012 17:06 # 0
Но, ИМХО, реализовать можно было проще с помощью utf8_decode и convert_cyr_string.