Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Непойму почему неработает... UTF-8 (https://forum.antichat.xyz/showthread.php?t=130559)

Adio 20.07.2009 04:37

Непойму почему неработает... UTF-8
 
Вот собсвенно подрубленый класс 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 код:

<?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 есть отдельная тема - 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


Время: 15:23