09.01.2006, 12:14 | #1 |
Banned
|
Файлы XML, CSV, HTML в кодировке Unicode
Думаю, многим окажутся полезны мои изыскания в области представления текстовых данных в разных кодировках. Итак, задача: сгенерировать из Аксапта файл CSV в кодировке UTF-16.
Одно из решений - это создать промежуточный файл XML в "родной" кодировке Аксапта, а затем с помощью XSL-шаблона превратить его в CSV в соответствующей кодировке. Это достигается следующим выражением xsl: PHP код:
А вот полный текст простого шаблона, который позволяет изменить кодировку XML-файла на желаемую: PHP код:
При этом в Аксапта запустить XSL-шаблон на исполнение, на первый взгляд, исключительно просто: PHP код:
Просто? Не тут-то было. Аксапта, как известно, продукт на чрезвычайно совеременной технологической платформе, и со строками Unicode работать не умеет. По-видимому, уже в момент приема строки-результата из компонента Msxml2.DOMDocument Аксапта преобразовывает результат из Unicode обратно в "родную" 8-битную кодировку. Рекомендованное решение - использовать не метод transformNode(), а метод transformNodeToObject(), который способен писать прямо в поток ADODB.Stream, т.е. писать результат на диск в обход Аксапта. Если разработать простой класс-обертку для ADODB.Stream, то код в Аксапта может выглядеть так: PHP код:
Последний раз редактировалось EVGL; 09.01.2006 в 17:21. |
|
|
За это сообщение автора поблагодарили: mazzy (18), belugin (14), kashperuk (1), zinius (1), alex55 (1), mix2ra (1). |
Теги |
unicode, xml, кодировка, ax3.0 |
|
|