Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2014, 15:22   #1
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию Как проверить файл на юникодность

В общем собираю текстовый файл в Лазарусе. По идее все должно сохраняться в UTF8. Как это проверить? Русские буковы в Блокноте отражаются крякозабрами (в самой программе показываются нормально), как мне удостовериться что выходной файл не смесь кодировок, а именно utf8?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.05.2014, 15:27   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сигнатуру BOM засунуть в начало подойдет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.05.2014, 15:28   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Что если в gedit удалить последний символ и проверить на сколько байт уменьшился файл. Половину сомнений отбросит.
Или так
Цитата:
date |file -i ./file.txt

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 07.05.2014 в 15:32.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 07.05.2014, 15:39   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сигнатуру BOM засунуть в начало подойдет?
Это все должно делаться автоматически. Но я боюсь, что английские имена там в юникоде, а русские фиг знает в чем. Я вставляю строки в StringList, по идее строки юникодовы и при вставке провожу преобразование в юникод из системной кодировки и сам список строк специально юникодовый (есть такая версия в лазарусе). Но все равно сомнения гложут.
Цитата:
Что если в gedit
Я в винде, качать отдельно для винды? Мне кажется есть способ проще.
Код:
date |file -i ./file.txt
Для какой операционки?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.05.2014, 15:39   #5
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

https://en.wikipedia.org/wiki/Charset_detection

Наверняка есть готовые решения.
ds.Dante вне форума Ответить с цитированием
Старый 07.05.2014, 15:41   #6
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
По идее все должно сохраняться в UTF8. Как это проверить? Русские буковы в Блокноте отражаются крякозабрами (в самой программе показываются нормально), как мне удостовериться что выходной файл не смесь кодировок, а именно utf8?
Блокнот как раз по BOM будет определять, соответственно всё правильно у вас собралось, но без BOM.
Цитата:
Это все должно делаться автоматически.
Не всегда. Есть вариант сохранения без BOM.
Цитата:
Но я боюсь, что английские имена там в юникоде, а русские фиг знает в чем.
Латиница в любом случае будет не в UTF-8 тк не попадает в диапазон.
Стрелок-охотник

Последний раз редактировалось mv28jam; 07.05.2014 в 15:46.
mv28jam вне форума Ответить с цитированием
Старый 07.05.2014, 15:43   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Наверняка есть готовые решения.
Это поиск по сигнатурам, то что Аватар писал. Она сигнатура может и совпадает, а вот внутри тела могут быть русские буквы в какой-нибудь Ansi 1251 (точнее я опасаюсь этого, возможно файл сам по себе корректен).
Цитата:
Блокнот как раз по BOM будет определять, соответственно всё правильно у вас собралось, но без BOM.
Как удостовериться? Я использую обычный метод SaveToFile без черной магии. Строки вставляю также стандартным Add (с предварительным преобразованием SysToUtf8).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.05.2014, 15:43   #8
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Не сигнатура, а частота появления символов и их сочетаний.
ds.Dante вне форума Ответить с цитированием
Старый 07.05.2014, 15:44   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Это поиск по сигнатурам, то что Аватар писал. Она сигнатура может и совпадает, а вот внутри тела могут быть русские буквы в какой-нибудь Ansi 1251 (точнее я опасаюсь этого, возможно файл сам по себе корректен).
Не не, не мешайте людейслошадями. Файл или весь в UTF8 или весь в ANSI.
Человек_Борща вне форума Ответить с цитированием
Старый 07.05.2014, 15:46   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Не не, не мешайте людейслошадями. Файл или весь в UTF8 или весь в ANSI.
Блин, в этом и есть проблема, как мне узнать смешал я людей с лошадями или нет?
Цитата:
Не сигнатура, а частота появления символов и их сочетаний.
Этот метод здесь не применим.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi res (проверить существует ли файл) Painkiller_13 Общие вопросы Delphi 15 18.01.2013 23:13
Проверить .sav-файл HoMM5 HellMercenariess Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 13.09.2012 15:25
Проверить, можно ли заменить/удалить файл... Человек_Борща Общие вопросы Delphi 6 02.07.2011 00:42
Как проверить изменялся ли файл NeiL Общие вопросы Delphi 11 15.05.2008 15:39
Как проверить, есть ли файл? Dux Общие вопросы Delphi 3 02.04.2008 23:18