Size: a a a

2020 December 27

VG

Vadim Goncharov in use Perl or die;
ничего страшного, просто везде делать decode/encode как полагается
источник

VT

Vasily Terkin in use Perl or die;
Игорь
Весело становится когда у тебя в utf8 скрипте подключается 2 пакета (utf8 и 1251) плюс данные от БД в 1251 и данные от стороннего api в utf8. Я до сих пор с wide character временами воюю, просто теперь это быстрее из-за того, что помню где посмотреть.
просто надо держать в уме в какой кодировке данные
источник

VT

Vasily Terkin in use Perl or die;
всегда, даже если это "text"
источник

VG

Vadim Goncharov in use Perl or die;
а лучше проектировать правильно, и держать не в уме
источник

VG

Vadim Goncharov in use Perl or die;
а как положено, на точках выхода-выхода данных, где заодно же и прочие очистки и эскейпинги проводить
источник

VT

Vasily Terkin in use Perl or die;
ну, есть данные, а есть их представление
источник

VG

Vadim Goncharov in use Perl or die;
я склоняюсь к тому, что надо бы всё-таки декодировать string (а bytes нет) в телеперле по схеме
источник

VT

Vasily Terkin in use Perl or die;
то есть, автоматически должен вставать вопрос, а в каком формате приходят данные
источник

VG

Vadim Goncharov in use Perl or die;
именно
источник

VT

Vasily Terkin in use Perl or die;
Vadim Goncharov
я склоняюсь к тому, что надо бы всё-таки декодировать string (а bytes нет) в телеперле по схеме
+
источник

АК

Алексей Клименко... in use Perl or die;
Anton Petrusevich
да, покури их
Эвалю через
$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 не уберу.

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

АК

Алексей Клименко... in use Perl or die;
Или переходить на JSON?
источник

AB

Alex Bush in use Perl or die;
На питон или го переходи
источник

AP

Anton Petrusevich in use Perl or die;
Алексей Клименко
Или переходить на JSON?
если более человекочитаемый, то ямл, а если более машиннолюбимый, то джейсон
источник

K

Kolunchik in use Perl or die;
Alex Bush
На питон или го переходи
+1
источник

AP

Anton Petrusevich in use Perl or die;
Алексей Клименко
Или переходить на JSON?
вообще, вот варианты: https://perlmaven.com/data-serialization-in-perl
источник

АК

Алексей Клименко... in use Perl or die;
Anton Petrusevich
если более человекочитаемый, то ямл, а если более машиннолюбимый, то джейсон
А если плювать через дампер (с : вместо =>), а кушать через JSON:XS, норм? Или одинарные кавычки не проглотит?
источник

AP

Anton Petrusevich in use Perl or die;
ну, что-то проглотит, а что-то нет
источник

AP

Anton Petrusevich in use Perl or die;
сделать из дампера почти джейсон вполне можно, но я ни разу не парился
источник

АК

Алексей Клименко... 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+$//;
источник