| От | Sergey Burladyan |
|---|---|
| Тема | pgagent unicode support |
| Дата | |
| Msg-id | 87a6shyenl.fsf@gmail.com обсуждение исходный текст |
| Ответы |
Re: pgagent unicode support
|
| Список | pgadmin-hackers |
Currently pgagent doesn't handle unicode correctly. CharToWString function corrupt multibyte characters because it processes string one byte at a time: 148 std::string s = std::string(cstr); 149 std::wstring wsTmp(s.begin(), s.end()); WStringToChar function does not take into account that there can be _multi_byte character on wcstombs output and create buffer with size = wcslen: 157 int wstr_length = wcslen(wchar_str); 158 char *dst = new char[wstr_length + 10]; Also pgagent do not setup locale with setlocale(), without it all wcs/mbs functions cannot handle multibyte strings. For example: === step code === select 'это проверка кириллицы в теле запроса pgagent' ================= === postgres log === 2021-02-05 23:19:05 UTC [15600-1] postgres@postgres ERROR: unterminated quoted string at or near "'" at character 8 2021-02-05 23:19:05 UTC [15600-2] postgres@postgres STATEMENT: select ' ==================== Please see attached patch. I only test it on GNU/Linux and can't test it on Windows, sorry. -- Sergey Burladyan
В списке pgadmin-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера