Новичок в Perl.
Я создал Perl-скрипт, который анализирует данные с html-сайта.Мой сценарий кодирует данные в UTF-8, один из данных содержит румынские символы, поэтому кодирование данных приводит к неправильным символам, таким как:
ţ = þ (incorrect); ş = º (incorrect); ă = ã (correct);
пример строки для анализа из html:
Distribuţia: Robert Downey Jr. (Sherlock Holmes) Jude Law (Dr. John Watson) Rachel McAdams (Irene Adler) Mark Strong (Lord Blackwood) Kelly Reilly (Mary Morstan) Eddie Marsan (Inspectorul Lestrade) James Fox (Sir Thomas)
Я хочу разделить это на:
my ($credits, $line)
foreach $credits (split /(?=\w+:)\s*/, $line) {
...
, но вывести, потому что "þ" интерпретируется как "несловесный символ" (здесь разрывы строк некорректны):
Distribuþ
Robert Downey Jr. (Sherlock Holmes)
Jude Law (Dr. John Watson)
Rachel McAdams (Irene Adler)
Mark Strong (Lord Blackwood)
Kelly Reilly (Mary Morstan)
Eddie Marsan (Inspectorul Lestrade)
James Fox (Sir Thomas)
Требуемый вывод (правильный):
Distribuţia
Robert Downey Jr. (Sherlock Holmes)
Jude Law (Dr. John Watson)
Rachel McAdams (Irene Adler)
Mark Strong (Lord Blackwood)
Kelly Reilly (Mary Morstan)
Eddie Marsan (Inspectorul Lestrade)
James Fox (Sir Thomas)
если я использую переменную "\ p {Alpha}" вместо "\ w", частично решить проблему (строка переносится правильно, но отображается " Распределение"вместо" Распространение", вероятно, происходит с другим персонажем) выглядит следующим образом (неверно):
Distribuþia
Robert Downey Jr. (Sherlock Holmes)
Jude Law (Dr. John Watson)
Rachel McAdams (Irene Adler)
Mark Strong (Lord Blackwood)
Kelly Reilly (Mary Morstan)
Eddie Marsan (Inspectorul Lestrade)
James Fox (Sir Thomas)