Кодировка, инклуды.

Тема в разделе "Как сделать...", создана пользователем sesharim, 30 мар 2008.

Статус темы:
Закрыта.
  1. sesharim

    sesharim

    Регистр.:
    4 окт 2006
    Сообщения:
    297
    Симпатии:
    26
    Собственно, такой вопрос. Есть систем Drupal, создаю я страницу, где хочу заинклудить один скрипт. В скрипте есть и англ, и русские символы. Естественно англ.символы отображаются нормально, а русские, кириллица - через попу. :) Такой вопрос, что поможет в этом случае?!
     
  2. Black#FFFFFF

    Black#FFFFFF

    Регистр.:
    19 июл 2007
    Сообщения:
    175
    Симпатии:
    107
    А в этом случае тебе поможет работа с кодировкой UTF-8 - и английские символы будут отображаться нормально и русские.
    Ну и несколько вопросов: в какой кодировке изначально страницы с друпала отдаются клиенту у тебя? Кодировка по умолчанию какая?
    А перекодировать входной поток данных можно например так (если прямо из инклуд файла все выводится с помощью echo или print:(

    PHP:

    $page 
    '';
    ob_start();
    require_once(
    'твой файл.php');
    $page ob_get_contents();
    ob_end_clean();
    if(
    $page){
          
    $page iconv('WINDOWS-1251','UTF-8//TRANSLIT',$page);
          if(
    $page) echo($page);
    }
    Либо перекодировать те переменные, которые приходят из скрипта с помощью функции iconv - если есть ее поддержка твоим сервером.
     
  3. sesharim

    sesharim

    Регистр.:
    4 окт 2006
    Сообщения:
    297
    Симпатии:
    26
    реальное спасибо, НО.
    http://www.lightsoul.ru/node/4 - глянь, например ник: Одинокий лев, щелкаешь на картинку информации, пишет что ник не найден, а англ.символы работал корректно с пробелами.
    Как тут? :)

    Добавлено через 3 минуты
    любой русский ник не показывает, вообщем. :(
     
  4. Black#FFFFFF

    Black#FFFFFF

    Регистр.:
    19 июл 2007
    Сообщения:
    175
    Симпатии:
    107
    Я сравнил хэши - перекодировка даже не требуется для этого случая. Заверни переменную $name в кодировке cp-1251 в: rawurlencode
    PHP:
    $name rawurlencode($name);                   
    Пример:
    PHP:
    <?php
        $namef 
    "Одинокий лев";
        
    //$name = iconv("WINDOWS-1251","UTF-8//TRANSTLIT",$name);
        
    $name rawurlencode($namef);
        echo( 
    '<a href="http://www.neverlands.ru/pinfo.cgi?'.$name.'" target="_blank">'.$namef.'</a>' );
        
    ?>
     
  5. sesharim

    sesharim

    Регистр.:
    4 окт 2006
    Сообщения:
    297
    Симпатии:
    26
    их там слишком много, не реально для каждого заводить такое, если честно..
     
  6. Black#FFFFFF

    Black#FFFFFF

    Регистр.:
    19 июл 2007
    Сообщения:
    175
    Симпатии:
    107
    Да при чем здесь слишком много?)
    Просто примени эту функцию к месту, где у тебя ссылки формируются
     
Статус темы:
Закрыта.