Использование различных языков в значениях текстовых полей
Использование различных языков в значениях текстовых полей
У меня программа рассчитана на использование людьми в разных странах. Поэтому встала проблема - каждый должен иметь возможность писать/читать оттуда данные в нужной кодировке.
Отображать скажем на русской системе французские буквы не нужно. Но на русской русский буквы должны выглядеть как надо, аналогично с французской системой и т.п.
Пока нашел 2 пути решения:
1. Указать charset NONE для базы при создании и все будет писаться и читаться как есть. В компонентах отображения кодировка DEFAULT_CHARSET, т.е. используется та, которая в системе.
2. Использовать unicode или utf8 - но тут я так понимаю возникнут сложности, т.к. пишу на delphi, а там компоненты юникод не держат. А ставить сторонние не хочется.
Что лучше?
Отображать скажем на русской системе французские буквы не нужно. Но на русской русский буквы должны выглядеть как надо, аналогично с французской системой и т.п.
Пока нашел 2 пути решения:
1. Указать charset NONE для базы при создании и все будет писаться и читаться как есть. В компонентах отображения кодировка DEFAULT_CHARSET, т.е. используется та, которая в системе.
2. Использовать unicode или utf8 - но тут я так понимаю возникнут сложности, т.к. пишу на delphi, а там компоненты юникод не держат. А ставить сторонние не хочется.
Что лучше?
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Да тут рассчитывать вобщем-то не надо, уже пользуются А firebird я прикручиваю в новой версии для расширения функционала.
А чем так плохо?
С charset=none заметил пока небольшую сложность.
Если редактировать через грид (вписать в ячейку русские буквы и сохранить) - то все ок.
Если же
То получается какая-то хрень... Вместо русских букв в гриде появляется фиг знает что.
Как лечить?
А чем так плохо?
С charset=none заметил пока небольшую сложность.
Если редактировать через грид (вписать в ячейку русские буквы и сохранить) - то все ок.
Если же
Код: Выделить всё
insert into "TracksTables" ("tName", "dispName") values ('xxx', 'Название с русскими буквами...');
Как лечить?
Все таки непонятно при чем тут delphi? Единственное, что можно сделать покрутить charset, я менял по разному толку ноль.
В датасете стоит InsertSQL, UpdateSQL и т.п. соответственно, редактируем в гриде, все записывается и читается нормально. Тот же запрос, но через Database.Execute('insert...' ...) русские буквы запарываются.
Попробовал использовать SQL монитор чтобы посмотреть как он исполняет запрос при редактировании в гриде, но там почему-то все выглядит так:
вопросы вместо реальных данных.
Может как-то надо строки оформить? Или еще что-нибудь с ними делать?
В датасете стоит InsertSQL, UpdateSQL и т.п. соответственно, редактируем в гриде, все записывается и читается нормально. Тот же запрос, но через Database.Execute('insert...' ...) русские буквы запарываются.
Попробовал использовать SQL монитор чтобы посмотреть как он исполняет запрос при редактировании в гриде, но там почему-то все выглядит так:
Код: Выделить всё
UPDATE "TracksTables"
SET
"tName" = ? ,
"dispName" = ?
WHERE
"tName" IS NULL
Может как-то надо строки оформить? Или еще что-нибудь с ними делать?