Я пытаюсь открыть файл с обычным HTML и специальными символами Unicode, такими как «ÖÄÅ öäå» (шведский), отформатировать его и затем вывести в файл.
Пока все отлично работаетЯ могу открыть файл, найти нужные мне детали и вывести их в файл.
Но вот в чем дело:
Я не могу сохранить введенные данные Unicode в файл без потери своей кодировки (например, 'ö' становится 'Ã' ').
Хотя я могу, вручную вводя их в сам код, управлять как регулярным выражением, так и выводить их для правильного кодирования.Но не тогда, когда я импортирую файл, форматирую его и затем выводю.
Пример рабочего подхода при использовании OCT (например, это может привести к выводу в файл без проблем кодирования):
my $charsSWE = "öäåÅÄÖ";
# \344 = ä
# \345 = å
# \305 = Å
# \304 = Ä
# \326 = Ö
# \366 = ö
my $SwedishLetters = '\344 \345 \305 \304 \326 \366';
if($charsSWE =~ /([$SwedishLetters]+)/){
print "Output: $1\n";
}
Способ ниже не работает, потому что кодировка потеряна (это быстрая иллюстрация части кода, но ее концепция та же самая (например, открытый файл, выборка и вывод)):
open(FH, 'swedish.htm') or die("File could not be opened");
while(<FH>)
{
my @List = /([$SwedishLetters]+)/g;
message($List[0]) if @List;
}
close(FH);