Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кириллица в RTF 
V
    Опции темы
Black_leopard
Дата 11.11.2011, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 18.10.2006

Репутация: нет
Всего: нет



Доброго времени суток!

Что-то уже который час мучаюсь, не могу понять как кириллицу перевести в кодировку для RTF.

На примере:
слово января в rtf кодируется как \'ff\'ed\'e2\'e0\'f0\'ff
февраля - \'f4\'e5\'e2\'f0\'e0\'eb\'ff

подскажите, пожалуйста, как такую конвертацию можно сделать средствами PHP?

Огромное спасибо.
PM MAIL   Вверх
$дмитрий
Дата 11.11.2011, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Была недавно похожая задача, готовой библиотеки не нашел, написал функцию конвертации.
Вот матрица символов:
Код

    $arMatrix['HEX'] = array('\\\'e9', '\\\'f6', '\\\'f3', '\\\'ea', '\\\'e5', '\\\'ed', '\\\'e3', '\\\'f8', '\\\'f9', '\\\'e7', '\\\'f5', '\\\'fa', '\\\'f4', '\\\'fb', '\\\'e2', '\\\'e0', '\\\'ef', '\\\'f0', '\\\'ee', '\\\'eb', '\\\'e4', '\\\'e6', '\\\'fd', '\\\'ff', '\\\'f7', '\\\'f1', '\\\'ec', '\\\'e8', '\\\'f2', '\\\'fc', '\\\'e1', '\\\'fe', '\\\'c9', '\\\'d6', '\\\'d3', '\\\'ca', '\\\'c5', '\\\'cd', '\\\'c3', '\\\'d8', '\\\'d9', '\\\'c7', '\\\'d5', '\\\'da', '\\\'d4', '\\\'db', '\\\'c2', '\\\'c0', '\\\'cf', '\\\'d0', '\\\'ce', '\\\'cb', '\\\'c4', '\\\'c6', '\\\'dd', '\\\'df', '\\\'d7', '\\\'d1', '\\\'cc', '\\\'c8', '\\\'d2', '\\\'dc', '\\\'c1', '\\\'de', ' ', '\\\'b9', ' ');
    $arMatrix['WORD'] = array('й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ', 'ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', 'Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ', 'Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'Э', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '~', '№', "\t");

echo str_replace($arMatrix['WORD'], $arMatrix['HEX'], 'Привет');


PM MAIL   Вверх
Black_leopard
Дата 11.11.2011, 17:02 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 18.10.2006

Репутация: нет
Всего: нет



Получилось так сделать:

Код

function strToHex($string)
{
    $hex = "";
    for ($i = 0; $i < strlen($string); $i++)
    {
        $h = substr($string, $i, 1);
        $h = iconv("UTF-8", "CP1251", $h);
        $h = ord($h);
        $h = "\'".dechex($h);
        
        $hex .= $h;
    }
    return $hex;
}

PM MAIL   Вверх
skyboy
Дата 12.11.2011, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



в таком случае неплохо начинать с описания формата.
а там же написано: и как не-юникод кодируется, и как юникод кодируется.
PM MAIL   Вверх
Lols
Дата 12.11.2011, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 21.10.2011

Репутация: нет
Всего: нет



Можно по юникоду поподробнее?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1147 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.