PHP + UNICODE + UTF-8 как преобразовать

sniffysko

Новичок
PHP + UNICODE + UTF-8 как преобразовать

Нужно преобразовать в скрипте строку из кодировки windows-1251 в Unicode.
В мануале по ПХП в качестве юникодовой кодировки упоминается UTF-8. По идее для этого надо сделать примерно так:
PHP:
  $hdr = fopen('d:/res.txt', "w");
  $hdrsrc = fopen('d:/srs.txt', 'r');
  while($str = fgets($hdrsrc)){
	fwrite($hdr, iconv('Windows-1251', 'UTF-8', $str));
  }
Готовый файл используется другой программой (Adobe Indesign). Которая для работы требует этот самый юникодовый текст. Но файл сгенерированный этим скриптом программа не принимает как Юникод. И если из индизайна экспортнуть строку и сверить содержимое файлов, то получается, что юникоды у них разные.
Например:
Строка "<UNICODE-WIN>"
В трактовке индизайна выглядит так:
3C 00 55 00 4E 00 49 00 43 00 4F 00 44 00 45 00 ....
А в трактовке скрипта так:
3С 55 4E 49 43 4F 44 45 2D 57 49 4E 3E 0D 0A 3C ....

Значит UTF-8 это не юникод? Или юникодов несколько? И как сгенерировать текст в "правильном" юникоде?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
sniffysko
Мне кажется, что вопросы по кодировке файлов для последующего импорта, логичнее задавать на сайтах связанных с полиграфией...
Например http://www.rudtp.ru/
 

sniffysko

Новичок
Вряд ли они знают что есть UTF-8 UTF-32 UTF-16.
Поэтому вопрос более програмистский чем верстательный.
И в Total Commander, например, при просмотре текстового файла в выборе кодировок есть Unicode и UTF-8.
 

Crazy

Developer
sniffysko, прочитай текст по ссылке, которую я дал, а затем внимательно сопоставь свои строки. Там все прозрачно.
 

sniffysko

Новичок
Автор оригинала: Crazy
sniffysko, прочитай текст по ссылке, которую я дал, а затем внимательно сопоставь свои строки. Там все прозрачно.
Спасибо огромное! Текст прочитан. Строки сопоставил. Индиза понимает юникод в кодировке UTF-16LE (старший байт за младшим). Все стало пучком. Вопрос исчерпан.
 
Сверху