vada писал(а):При создании базы в постгресе какую кодировку задавал?
Никакую, кластер вроде создался сам с ru_RU.UTF-8
Кстати, "реляционный способ" работает нормально, т.к. SQL команды которые через .ExecSQL.
А "навигационный" способ не работает.
Connection CharSet = UTF8 - пробовал, толку нет.
- Код: Выделить всё
resident@ubuntu:~$ locale -a
C
C.UTF-8
de_DE.utf8
en_US.utf8
fr_FR.utf8
POSIX
ru_RU.utf8
- Код: Выделить всё
resident@ubuntu:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
- Код: Выделить всё
SHOW client_encoding;
client_encoding
-----------------
UTF8
(1 строка)
- Код: Выделить всё
SHOW server_encoding;
server_encoding
-----------------
UTF8
(1 строка)
- Код: Выделить всё
l
Список баз данных
Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа
-----------+----------+-----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
template0 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
victoria | captain | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
(4 строки)
- Код: Выделить всё
SELECT UPPER('анг.: abc рус.: ёйфы тур.: Bağışlar Köy çeşmesi');
upper
-------------------------------------------------
АНГ.: ABC РУС.: ЁЙФЫ ТУР.: BAĞIŞLAR KÖY ÇEŞMESI
(1 строка)
Добавлено спустя 56 минут 20 секунд:Re: Запись в базу белиберды или только первого символа строкиОпыты показали три момента:
1) Если вручную задавать свойство UpdateSQL, то будет все тоже самое - белиберда.
2) Но вот если в этом свойстве UpdateSQL задать присвоение непосредственно как константу 'Новый текст', то она занесется в базу нормально.
Из этого я делаю вывод, что глюк внутри самого Лазаруса где-то с момента присвоения .FieldByName('___').AsString до вывода в SQL запрос на сервер
3) Самый интересный момент, если я заменяю
- Код: Выделить всё
____.FieldByName('page_format').AsString := 'Новый текст';
на большие буквы
- Код: Выделить всё
____.FieldByName('page_format').AsString := 'НОВЫЙ ТЕКСТ';
то обновление вобще не проходит с ошибкой "Неверная последовательность байт для кодировки UTF-8..."
Это значит что Лазарус не отсылает UTF-8?
У вас нет необходимых прав для просмотра вложений в этом сообщении.