FireDAC имена файлов из папки и в процессе внесения (или возможно вывода их из базы) некоторые символы превращаются в знаки вопроса.
Имена файлов вношу через такого плана код:
FDQuery1.ParamByName('ObjectName').AsString := AnsiLowerCase(ObjectName);
В момент пошагового выполнения проверяю в ObjectName правильно ли там указано имя файла (все норм - никаких вопросиков), затем когда пытаюсь достать из этой же записи значение поля через такой код:
s:=FDQuery1.FieldByName('ObjectName').AsString;
То в s уже оказывается такое же имя но с вопросиками вместо некоторых символов.
Например если клал в базу я вот такую строку:
Предоставление сведений из ЕГРЮЛЕГРИП в электронном виде.webloc
То достается обратно эта строка в таком виде
Предоставление сведений из ЕГРЮЛ?ЕГРИП в электронном виде.webloc
Проверял в режиме пошагового выполнения (в режиме отладки) - проблема происходит именнов каком-то из этих двух моментов - либо во время ввода либо вывода из базы.
Попробовал указывать кодировку в ручную через
FDConnection1.Params.Values['Database'] := dbPath;
FDConnection1.Params.Values['CharacterSet'] := 'UTF8';
FDConnection1.Connected := True;
FDConnection1.ExecSQL('PRAGMA encoding = "UTF-8";');
Не помогло.
Может кто знает как с этим бороться?
для начала, в базу FireDAC, FireDAC - это не база, название базы не услышали
Что возвращает ansiLowerCase проверял И вообще какая версия delphi?
Проверял - меняет БУКВЫ на маленькие - точка остается на месте. Регистр букв уменьшаю для того чтобы поиск потом работал напрямую в базе, но вероятно переделаю и дубу для поиска отдельную базу мутиь, а то принцип первозданности нарушается - не хорошо.
Обсуждают сегодня