Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 23:40   #1
Sergey2
Форумчанин
 
Регистрация: 08.01.2008
Сообщений: 233
По умолчанию Трабла с кодировками на php

Есть сайт. Он в utf-8. И есть информер, скрипт которого отдает в win1251.
Сделал на php скрипт, который берет информер (который вкодировке win1251) и отдает в utf-8. Проблема в том что если в броузере (опера) стоит кодировка "автоматически", то сайт нормлаьно выглядит, а информер - нет. Но если принудительно укзаать utf-8, то все нормлаьно.

Информер в виде document.write и т.д.:
Код:
document.write('<style type="text/css">');
Чего надо добавить что бы автоматом тоже кодировка нормальная была? А то IE вообще не может нормально отобразить страницу, даже если принудительно укзаать....
Sergey2 вне форума Ответить с цитированием
Старый 24.05.2010, 09:42   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
который берет информер (который вкодировке win1251) и отдает в utf-8
Как реализовано перекодирование?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 24.05.2010, 21:20   #3
Sergey2
Форумчанин
 
Регистрация: 08.01.2008
Сообщений: 233
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Как реализовано перекодирование?
PHP код:
function cp1251_to_utf8 ($txt)  {
    
$in_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)
    );   

    
$out_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;

если выставить кодировку страницыпринудительно в utf8, то показывает нормально
Sergey2 вне форума Ответить с цитированием
Старый 24.05.2010, 23:33   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

а что, iconv уже не канает?
ADSoft вне форума Ответить с цитированием
Старый 24.05.2010, 23:47   #5
Sergey2
Форумчанин
 
Регистрация: 08.01.2008
Сообщений: 233
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
а что, iconv уже не канает?
да мне без разницы. я просто в php не силен
Sergey2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с кодировками kakawkin Работа с сетью в Delphi 9 05.01.2010 21:22
Проблема з кодировками! hoza_syl PHP 3 10.10.2009 15:10
Работа с кодировками tsergey PHP 1 01.09.2009 16:05
Проблема с кодировками igroman Общие вопросы C/C++ 9 25.01.2009 22:25
Проблема с кодировками, шрифтами.. Gauss Общие вопросы Delphi 13 16.02.2008 23:16