Непойму почему неработает... UTF-8

Discussion in 'PHP' started by Adio, 20 Jul 2009.

  1. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Вот собсвенно подрубленый класс RTF который выводит все русские буквы спец буквы ..


    <?php

    require_once("../rtf/Rtf.php");

    //Fonts
    $times12 = new Font(12, 'Times new Roman');

    //Rtf document
    $rtf = new Rtf();

    //Section
    $sect = &$rtf->addSection();
    $null = $null;
    //Write utf-8 encoded text.
    //Text is from file. But you can use another resouce: db, sockets and other
    $sect->writeText(file_get_contents("../sources/utf8.txt"), $times12, $null);

    $rtf->sendRtf();

    ?>


    Он работает хорошо. Когда читает файл utf8.txt

    А если я делаю так.

    $sect->writeText('SPECIAL SYMBOLS', $times12, $null);

    То мне выводит пустые квадратики вмето специальных букв с ударением и т д ... Почему так ? не как нельзя что бы он перекодировал не из файла ? т.е или из переменной передаваемой файлу или даже просто вписанный тест.. не катит.. незнаю где проблема..
     
  2. IIAHbI4

    IIAHbI4 Banned

    Joined:
    24 Aug 2006
    Messages:
    276
    Likes Received:
    331
    Reputations:
    11
    откуда выводишь? ... ааа тхт, кодировка на сервере какая\?

    файл тхт когда сохраняешь, в опция уникод ставь
     
  3. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Вот нашео решение.


    Junior Member Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору<?php

    require_once("../rtf/Rtf.php");

    $rtf = new Rtf();
    $sect = &$rtf->addSection();
    $sect->writeText(iconv("CP1251", "UTF-8",'<i>Привет <b>Мир</b></i>.'), new Font(12), new ParFormat('center'));

    $rtf->sendRtf('Hello_World');

    ?>

    Это работает с iconv

    Но как мне вставить правильно в строку ?

    т.е сюда как правильно вставить iconv ?

    $table->writeToCell(22, 2, ''.$laurea.'', new Font(),$null, new ParFormat());
     
  4. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    up люди хелп..
     
  5. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <?php
    $laurea_cp1251 
    '<i>Привет <b>Мир</b></i>.'//Текст переменной
    $laurea_utf iconv("CP1251""UTF-8"$laurea_cp1251); //Преобразование кодировок

    $table->writeToCell(222$laurea, new Font(),$null, new ParFormat()); //Запись в файловый формат
    ?>
    PHP:
    ''.$laurea.''
    это извращение, вместо этого нужно использовать только переменную $laurea

    P.S. Для мелких вопросов по PHP есть отдельная тема - /lastpostinthread40896.html
    P.S.S. Прочти пожалуйста хотябы первые 20 страничек книги о PHP, чтобы знать представление как всё работает.... это поможет ответить на многие вопросы
     
    1 person likes this.
  6. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Написал.


    $table->writeToCell(26,1, ''.iconv("iso-8859-1", "UTF-8",$info.''), new Font(12), new ParFormat('center'));

    ВЫВОДИТ ⠹ ⠹ квадратики пустые.

    А если пишу так

    $sect->writeText(iconv("iso-8859-1", "UTF-8",'$info'), new Font(12), new ParFormat('center'));

    то выводит то что нужно... ничего не пойму ? вроде все правильно пишу все работает а 1 варианте выводит квадратики 2 варианте выводит что что нужно.
     
  7. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Я так понял что на это дейсвует $sect->writeText и $table->writeToCell

    Но не уверен если это можно как то сдлеать рабочим.

    Зделаю баннер графику только помогите .. заплатить немогу на данный момент нету вэб мани. Будут в сентябре. буду платить. (
     
  8. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18