Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]
Модератор: Модераторы
Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]
Всем доброго!
Собрал проект на Win7, где логи пишутся в файл с использованием Utf8ToWinCp - все Ок.
Запускаю проект на Win10 - в логах кракозябры...
Пробовал в проекте под Win7 Utf8ToSys - в логах стали кракозябры...
И еще - если проект собрать на Win10, то в логах с Utf8ToWinCp - все Ок.
Под Linux (понятно, без Utf8ToWinCp) все Ок.
Куды бечь?
Собрал проект на Win7, где логи пишутся в файл с использованием Utf8ToWinCp - все Ок.
Запускаю проект на Win10 - в логах кракозябры...
Пробовал в проекте под Win7 Utf8ToSys - в логах стали кракозябры...
И еще - если проект собрать на Win10, то в логах с Utf8ToWinCp - все Ок.
Под Linux (понятно, без Utf8ToWinCp) все Ок.
Куды бечь?
Последний раз редактировалось Владимир 19.12.2017 16:54:43, всего редактировалось 1 раз.
wofs писал(а):Хм... а под вин разве не UTF8 нынче?
Вот не знаю. Повторюсь - собранный проект на Win10 c Utf8ToWinCP - все Ок.
Получается - cp1251?
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Сохранять логи в utf8. Винда от семерки и выше прекрасно читает и пишет utf8 текстовые файлы.
Снег Север писал(а):Сохранять логи в utf8. Винда от семерки и выше прекрасно читает и пишет utf8 текстовые файлы.
Т.е. предлагаете не использовать Utf8ToWinCp? Так под Win7 логи в кракозябрах.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Владимир писал(а):Т.е. предлагаете не использовать Utf8ToWinCp?
Код: Выделить всё
uses LazUTF8Classes;
TStringListUTF8.LoadFromFile();
TStringListUTF8.SaveToFile(); Спасибо! Буду пробовать.
Владимир
Блокнот (на вин7) UTF-8 файл с русскими буквами смотрит без всяких кракозябров, проверено.
Блокнот (на вин7) UTF-8 файл с русскими буквами смотрит без всяких кракозябров, проверено.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Vadim, это не говорит о наитивной поддержке каких-либо кодировок. Лишь о хорошей функции анализа текущей кодировки.
Проблема решилась: не хорошо писать в текстовый файл из секции try-except
Код: Выделить всё
....................
try
MySqlConnection.Connected:=True;
except
SaveLog(....);//вот так делать не хорошо
end;
Блокнот (на вин7) UTF-8 файл с русскими буквами смотрит без всяких кракозябров, проверено.
Только если в начале файла есть BOM. СтрингЛист в Лазаре его не пишет.
чегоне хорошо писать в текстовый файл из секции try-except
Может вы что то не то сделали в SaveLog? Может вообще логи писать не найс?
И если использовать переконвертацию то более стандартным способом есть: UTF8ToCP1251.
п.с.
А вы уверены что Utf8ToSys и Utf8ToWinCp работают как вам хотелось?
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Владимир писал(а): не хорошо писать в текстовый файл из секции try-except
То есть, в логах не должно быть самой нужной информации? (а ради сбоев, собственно, логи и нужны).
pupsik писал(а):А вы уверены что Utf8ToSys и Utf8ToWinCp работают как вам хотелось?
Первая точно работает не как хотелось.
slyubez писал(а):Только если в начале файла есть BOM.
Вообще-то без БОМ у меня блокнот русские буквы тоже правильно показывает. Может это косяк винды?
Добавлено спустя 1 минуту 58 секунд:
Лекс Айрин писал(а):это не говорит о наитивной поддержке каких-либо кодировок. Лишь о хорошей функции анализа текущей кодировки.
Так я с этим и не спорил. Просто блокнотом можно без напрягов (и перекодировок) смотреть файлы с UTF-8. Правда если только перенос строк виндовый...
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Vadim писал(а):Так я с этим и не спорил.
В контексте разговора так не казалось.
