Size: a a a

2020 December 27

VT

Vasily Terkin in use Perl or die;
А зачем bom в utf8?
источник

VT

Vasily Terkin in use Perl or die;
Alex Bush
На питон или го переходи
Вот марлик обрадуется
источник

АК

Алексей Клименко... in use Perl or die;
Vasily Terkin
А зачем bom в utf8?
Чтобы получающиеся файлы любыми текстовыми редакторами без вопросов открывались~
источник

IB

Ivan Bessarabov in use Perl or die;
Алексей Клименко
Чтобы получающиеся файлы любыми текстовыми редакторами без вопросов открывались~
а есть пример редактора, кторый без bom не откроет сразу с правильной кодировкой?
источник

SZ

Sergey Zhmylove in use Perl or die;
Ivan Bessarabov
а есть пример редактора, кторый без bom не откроет сразу с правильной кодировкой?
Notepad.exe
источник

АК

Алексей Клименко... in use Perl or die;
Ivan Bessarabov
а есть пример редактора, кторый без bom не откроет сразу с правильной кодировкой?
Детекция на utf8 обычно работает так: берём первый килобайт файла – если там нет «ошибочных utf8-последовательностей» (то есть бинарщины с >127), но при этом была хоть одна валидная – то это utf8.
Иначе – открыть в кодировке по умолчанию.
источник

IB

Ivan Bessarabov in use Perl or die;
Алексей Клименко
Детекция на utf8 обычно работает так: берём первый килобайт файла – если там нет «ошибочных utf8-последовательностей» (то есть бинарщины с >127), но при этом была хоть одна валидная – то это utf8.
Иначе – открыть в кодировке по умолчанию.
в этом алгоритме бом зачем?
источник

АК

Алексей Клименко... in use Perl or die;
Ivan Bessarabov
в этом алгоритме бом зачем?
BOM – это первый же валидный utf8-символ.
источник

АК

Алексей Клименко... in use Perl or die;
Суть в том, что если «близко к началу файла» оказалось так, что попало только ASCII – то детекция на utf8 без BOM не сработает.

Потому что ~никто не будет читать весь файл только чтобы кодировку его узнать.
источник

VT

Vasily Terkin in use Perl or die;
Если только аски, то можно смело открывать как ютф8
источник

АК

Алексей Клименко... in use Perl or die;
Vasily Terkin
Если только аски, то можно смело открывать как ютф8
Открывал я недавно бинарный PDF в AkelPad, а тот за каким-то фигом его как UTF-8 распознал (явно ошибочно).

А я долго понять не мог, почему не могу найти латинскую подстроку, которая в нём точно есть – потому что он где-то в середине вообще файл обрезал, видимо по \0

Я переоткрыл вручную в win1251, норм.
источник

YM

Yuri Myasoedov in use Perl or die;
Vasily Terkin
Вот марлик обрадуется
только в го проблема есть, там всё уже написано, остаётся только патчи и багфиксы присылать, никакого творчества
источник

AP

Anton Petrusevich in use Perl or die;
как в Греции?
источник

YM

Yuri Myasoedov in use Perl or die;
нет, в Греции уже всё разобрали, один госдолг остался
источник

NK

ID:1433858436 in use Perl or die;
источник

AP

Anton Petrusevich in use Perl or die;
Ruby 3.0 Released With ~3x The Performance — шевелится, курилка!
источник

R

Rajesh in use Perl or die;
Anton Petrusevich
Ruby 3.0 Released With ~3x The Performance — шевелится, курилка!
Wew
источник

VG

Vadim Goncharov in use Perl or die;
Алексей Клименко
JSON:XS тоже упирается в BOM и выдаёт
malformed JSON string, neither tag, array, object, number, string or atom …

UPD: Ну ладно, пусть вот так будет:

$str =~ s/^\s*\xef\xbb\xbf\s+//;
$str =~ s/\s+$//;
ох, сколько я с этим в mail.ru на заебался, с их собственной версией JSON::XS для 1251...
источник

VG

Vadim Goncharov in use Perl or die;
Yuri Myasoedov
нет, в Греции уже всё разобрали, один госдолг остался
s/в Греции всё есть/в Греции всё было/ ?
источник

VG

Vadim Goncharov in use Perl or die;
Алексей Клименко
Эвалю через
$data =  eval(<$handle>);

Решил в принт добавить
local $Data::Dumper::Useqq = $utf8 ? 0 : 1;
my $bom = $utf8 ? encode_utf8(chr(65279))."\n" : '';
my $str = $bom.Dumper($data);


Теперь файл создаётся корректный в UTF-8 с BOM.
Но! При чтении – нифига не считывается, пока BOM не уберу.

Что, регуляркой резать?..
а что мешает оставить Storable?
источник