Я собираю кусочки чужого большого проекта и пытаюсь исправить ошибки. Проблема в том, что я просто не уверен, какие есть правильные способы.
Итак, я скручиваю кучу HTML-страниц, а затем записываю их в файлы с помощью простых команд, таких как:
$src = `curl http://google.com`;
open FILE, ">output.html";
print FILE $src;
close FILE;
Теперь я хотел, чтобы они были сохранены как UTF-8. Как это сохраняется? Затем я читаю html-файл, используя ту же базовую команду «открыть», анализируя html с помощью вызовов регулярных выражений и используя конкатенацию строк для создания большой строки и записи ее в файл XML (используя тот же код, что и выше). Вместо этого я уже начал использовать XML::Writer, но теперь мне нужно просмотреть и исправить файлы с неточной кодировкой.
Итак, у меня больше нет html, но у меня все еще есть XML, который должен отображать правильные символы. Вот пример: http://filevo.com/wkkixmebxlmh.html
Основная проблема заключается в обнаружении и замене рассматриваемого символа на «\x{2019}», который правильно отображается в редакторах. Но я не могу придумать регулярное выражение, чтобы на самом деле захватить персонажа в дикой природе.
ОБНОВЛЕНИЕ:
Я до сих пор не могу обнаружить символ ALT-0146 в файле XML, который я загрузил в Filevo выше. Я пытался открыть его в UTF-8 и искать /\x{2019}/, /chr(0x2019)/ и просто /’/, ничего.
use utf8
предназначен исключительно для обработки исходного кода вашего скрипта как закодированного в UTF-8. Он не имеет ничего общего с кодировкой любых входов и выходов вашего скрипта, включая STDOUT. - person mob   schedule 28.05.2011