parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

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

Вот такая история. Поэтому свежие мысли приветствуются. Вроде и документацию пересмотрел заново Парсера, и проверил поплясать с бубном. Пока не решается задача.