InDesign не сможет использовать любую кодировку, указанную в заголовке. (Он даже не увидит его, поскольку он не сохраняется при сохранении на диск в Windows.) Вместо этого вы должны явно указать ему кодировку в отдельном специальном теге в начале файла, например:
<ANSI-WIN>
К сожалению, не использует стандартные имена кодировок , и в InDesign нет тега, который вообще соответствует кодировке UTF-8. Единственный тег кодировки, который вы можете использовать, который позволит вам включить любой символ, который вам нравится:
<UNICODE-WIN>
, что соответствует UTF-16 (little-endian with BOM), с окончаниями строки Windows CRLF. (Единственный другой вариант окончания строки - это MAC, который вам совсем не нужен, так как это старые Mac OS до OSX, где символом окончания строки был CR.)
Итак, учитывая строку $ s UTF-8, включающую последовательности байтов UTF-8, которые вы извлекли из базы данных, и простые (Unix-Linux-OSX-web-style) переводы строк LF, вы должны написать это так :
$s= "<UNICODE-WIN>\r\n".str_replace("\n", "\r\n", $s);
echo iconv('UTF-8', 'UTF-16', $s);
(Обеспечение отсутствия вывода любых пробелов до или после, потому что это нарушит кодировку UTF-16.