Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Сообщение Владимир » 18.12.2017 19:58:00

Всем доброго!
Собрал проект на Win7, где логи пишутся в файл с использованием Utf8ToWinCp - все Ок.
Запускаю проект на Win10 - в логах кракозябры...
Пробовал в проекте под Win7 Utf8ToSys - в логах стали кракозябры...
И еще - если проект собрать на Win10, то в логах с Utf8ToWinCp - все Ок.
Под Linux (понятно, без Utf8ToWinCp) все Ок.
Куды бечь?
Последний раз редактировалось Владимир 19.12.2017 17:54:43, всего редактировалось 1 раз.
Владимир
постоялец
 
Сообщения: 316
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение wofs » 18.12.2017 20:30:18

Владимир писал(а):Под Linux (понятно, без Utf8ToWinCp) все Ок.

Хм... а под вин разве не UTF8 нынче?
Аватара пользователя
wofs
постоялец
 
Сообщения: 319
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение Владимир » 18.12.2017 21:02:55

wofs писал(а):Хм... а под вин разве не UTF8 нынче?

Вот не знаю. Повторюсь - собранный проект на Win10 c Utf8ToWinCP - все Ок.
Получается - cp1251?
Владимир
постоялец
 
Сообщения: 316
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение Снег Север » 18.12.2017 23:22:24

Сохранять логи в utf8. Винда от семерки и выше прекрасно читает и пишет utf8 текстовые файлы.
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 1009
Зарегистрирован: 27.11.2007 16:14:47

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение Владимир » 19.12.2017 00:41:33

Снег Север писал(а):Сохранять логи в utf8. Винда от семерки и выше прекрасно читает и пишет utf8 текстовые файлы.

Т.е. предлагаете не использовать Utf8ToWinCp? Так под Win7 логи в кракозябрах.
Владимир
постоялец
 
Сообщения: 316
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение Снег Север » 19.12.2017 06:25:41

Владимир писал(а):Т.е. предлагаете не использовать Utf8ToWinCp?

Код: Выделить всё
uses LazUTF8Classes;

TStringListUTF8.LoadFromFile();
TStringListUTF8.SaveToFile();   
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 1009
Зарегистрирован: 27.11.2007 16:14:47

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение Владимир » 19.12.2017 09:44:22

Спасибо! Буду пробовать.
Владимир
постоялец
 
Сообщения: 316
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение Vadim » 19.12.2017 12:46:01

Владимир
Блокнот (на вин7) UTF-8 файл с русскими буквами смотрит без всяких кракозябров, проверено.
Vadim
долгожитель
 
Сообщения: 2681
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10

Сообщение Лекс Айрин » 19.12.2017 13:42:45

Vadim, это не говорит о наитивной поддержке каких-либо кодировок. Лишь о хорошей функции анализа текущей кодировки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4200
Зарегистрирован: 19.02.2013 16:54:51

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Сообщение Владимир » 19.12.2017 17:59:49

Проблема решилась: не хорошо писать в текстовый файл из секции try-except
Код: Выделить всё
....................
try
MySqlConnection.Connected:=True;
except
SaveLog(....);//вот так делать не хорошо
end;
Владимир
постоялец
 
Сообщения: 316
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Сообщение slyubez » 19.12.2017 19:17:59

Блокнот (на вин7) UTF-8 файл с русскими буквами смотрит без всяких кракозябров, проверено.

Только если в начале файла есть BOM. СтрингЛист в Лазаре его не пишет.
slyubez
постоялец
 
Сообщения: 123
Зарегистрирован: 31.03.2015 08:44:07

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Сообщение pupsik » 20.12.2017 01:22:08

не хорошо писать в текстовый файл из секции try-except
чего :shock:
Может вы что то не то сделали в SaveLog? Может вообще логи писать не найс?
И если использовать переконвертацию то более стандартным способом есть: UTF8ToCP1251.

п.с.
А вы уверены что Utf8ToSys и Utf8ToWinCp работают как вам хотелось?
pupsik
энтузиаст
 
Сообщения: 1107
Зарегистрирован: 20.08.2014 16:20:13

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Сообщение Лекс Айрин » 20.12.2017 09:44:16

Владимир писал(а): не хорошо писать в текстовый файл из секции try-except


То есть, в логах не должно быть самой нужной информации? (а ради сбоев, собственно, логи и нужны).

pupsik писал(а):А вы уверены что Utf8ToSys и Utf8ToWinCp работают как вам хотелось?


Первая точно работает не как хотелось.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4200
Зарегистрирован: 19.02.2013 16:54:51

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Сообщение Vadim » 20.12.2017 11:19:38

slyubez писал(а):Только если в начале файла есть BOM.

Вообще-то без БОМ у меня блокнот русские буквы тоже правильно показывает. Может это косяк винды? :-)

Добавлено спустя 1 минуту 58 секунд:
Лекс Айрин писал(а):это не говорит о наитивной поддержке каких-либо кодировок. Лишь о хорошей функции анализа текущей кодировки.

Так я с этим и не спорил. Просто блокнотом можно без напрягов (и перекодировок) смотреть файлы с UTF-8. Правда если только перенос строк виндовый... ;-)
Vadim
долгожитель
 
Сообщения: 2681
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Ф-ция Utf8ToWinCp из LazUtf8 на Win7 и Win10 [Решено]

Сообщение Лекс Айрин » 20.12.2017 11:41:20

Vadim писал(а):Так я с этим и не спорил.


В контексте разговора так не казалось.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4200
Зарегистрирован: 19.02.2013 16:54:51

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru