Ответ
Sergey 13.03.2015 21:50
Итак, что у нас было в начале.
В авто было
$request:charset[utf-8]
$response:charset[utf-8]
$response:content-type[
$.value[text/html]
$.charset[$response:charset]
]
$connect_string[
mysql://**?codepage=cp1251]
Мы получали ошибку двойного кодирования и поэтому, например, неправильно сохранялись некоторые русские буквы. С этим вопросом я пришел на форум. В тот момент в другой части системы и xml и csv создавались как надо.
Что мы сделали, убрали кодировку для строки соединения, так как у парсера по-умолчанию и так идет utf-8.
Теперь данные в базу и вывод из нее отображались на понятном языке, но пришлось заново отредактировать те записи, которые содержали русские символы в старой кодировке. База была небольшой, открывали запись, редактировали и сохраняли. То есть, в принципе, все стало работать как раньше, но еще и решилась проблема некоторых русских символов, которая и беспокоила в начале.
Но теперь перестало работать то место, где идет создание xml и csv. Спутанно объяснил, но в принципе, ошибка и там и там одна и та же. Хотя csv не проверяли, мы использовали его когда-то и зачем-то.
А иксэмел используется для формирования таблицы в виде сетки.
Обычный файл, в котором вот такой простой код.
@main[]
^connect[$connect_string]{
$print[^table::sql{SELECT *******}]
}
$out_xml[^xdoc::create{<?xml version="1.0" encoding="utf-8"?> <rows>
^print.menu{<row id="$print.id"> <cell>$print.nimi $print.perekonnanimi</cell> *****</row> }
</rows>}]
^out_xml.save[/oe/grid.xml]
Теперь этот код вызывает ошибку парсера. 'create' Entity: line 2: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xB5 0x72 0x75 0x3C
Вот такая история. Поэтому свежие мысли приветствуются. Вроде и документацию пересмотрел заново Парсера, и проверил поплясать с бубном. Пока не решается задача.