Извечная проблема lazarus кириллица и юникод
Модератор: Модераторы
Проверяйте кодировку всех строк, конкатенацию которых вы производите. В вашем случае она должна быть UTF8.
В Windows у меня значение ParamStr(0) отображается знаками вопросов (текст "Новая папка"):
Как с этим бороться?
Как с этим бороться?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо. Еще вопрос. Вот код:
Вот что получаю (квадратик вначале)...
Как правильно?
Код: Выделить всё
SL := TStringList.Create;
SL.LoadFromFile(Path + 'file_utf-8.txt');
ShowMessage(SL[0]);
SL.Free;
Вот что получаю (квадратик вначале)...
Как правильно?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Это не то! Что SL[0], что SL.Strings[0] - результат один. Strings по-моему стоит default.
Вотъ:
Добавлено спустя 21 минуту 19 секунд:
Ага, разобрался
Первый знак - сигнатура юникода. Она может быть или не быть. При сохранении в редакторе можно поставить соответ. птичку. Я правильно понимаю? Она позволяет узнать, является ли файл utf8?
Добавлено спустя 21 минуту 19 секунд:
Ага, разобрался
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Всё ясно. У вас в файле содержится так называемая BOM метку.
Да, вот еще код, который определяет ее наличие и удаляет, если сигнатура есть.
Код: Выделить всё
if (Copy(SL[0], 1, 3) = #239#187#191) then
begin
Tmp := SL[0];
Delete(Tmp, 1, 3);
SL[0] := Tmp;
end;
