PDA

Просмотр полной версии : Непойму почему неработает... UTF-8


Adio
20.07.2009, 04:37
Вот собсвенно подрубленый класс 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);

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

IIAHbI4
20.07.2009, 04:58
откуда выводишь? ... ааа тхт, кодировка на сервере какая\?

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

Adio
20.07.2009, 15:05
Вот нашео решение.


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());

Adio
20.07.2009, 15:22
up люди хелп..

FireFenix
20.07.2009, 21:33
<?php
$laurea_cp1251 = '<i>Привет <b>Мир</b></i>.'; //Текст переменной
$laurea_utf = iconv("CP1251", "UTF-8", $laurea_cp1251); //Преобразование кодировок

$table->writeToCell(22, 2, $laurea, new Font(),$null, new ParFormat()); //Запись в файловый формат
?>



''.$laurea.''

это извращение, вместо этого нужно использовать только переменную $laurea

P.S. Для мелких вопросов по PHP есть отдельная тема - http://forum.antichat.ru/lastpostinthread40896.html
P.S.S. Прочти пожалуйста хотябы первые 20 страничек книги о PHP, чтобы знать представление как всё работает.... это поможет ответить на многие вопросы

Adio
22.07.2009, 04:24
Написал.


$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 варианте выводит что что нужно.

Adio
22.07.2009, 04:42
Я так понял что на это дейсвует $sect->writeText и $table->writeToCell

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

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

Adio
22.07.2009, 16:33
UP