У меня проблемы с символами Юникода в Perl.Когда я получаю данные из Интернета, я часто получаю такие символы, как √¢¬Ä¬ú
или √¢¬Ç¬¨
.Первый - это кавычка, а второй - символ евро.
Теперь я могу легко подставить правильные значения в Perl и вывести на экран исправленные слова, но когда я пытаюсь вывести в файл .CSV все подстановки, которые я произвел, ничего не происходит, и я получаю мусорв моем .CSV файле.(Цитаты работают, догадываясь, потому что это такой общий характер).Также Numéro даст Numéro.Примеры бесконечны.
Я написал небольшую программу, чтобы попытаться выяснить эту проблему, но я не уверен, в чем проблема.Я прочитал в другом потоке переполнения стека, что вы можете импортировать .CSV в Excel и выбрать кодировку UTF8, хотя эта опция не появляется для меня.Мне интересно, могу ли я просто закодировать его в какой-либо родной набор символов Excel (UTF16BE ???) или есть другое решение.Я пробовал много вариантов этой короткой программы, и позвольте мне еще раз сказать, что она предназначена только для тестирования проблем Unicode, а не является частью легальной программы.Спасибо.
use strict;
use warnings;
require Text::CSV_XS;
use Encode qw/encode decode/;
my $text = 'Numéro Numéro Numéro Orkos Capital SAS (√¢¬Ä¬úOrkos√¢¬Ä¬ù) 325M√¢¬Ç¬¨ in 40 companies headquartered';
print("$text\n\n\n");
$text =~ s/“|”/"/sig;
$text =~ s/’s/'s/sig;
$text =~ s/√¢¬Ç¬¨/€/sig;
$text =~ s/√¢¬Ñ¬¢/®/sig;
$text =~ s/ / /sig;
print("$text\n\n\n");
my $CSV = Text::CSV_XS->new ({ binary => 1, eol => "\n" }) or die "Cannot use CSV: ".Text::CSV->error_diag();
open my $OUTPUT, ">:encoding(utf8)", "unicode.csv" or die "unicode.csv: $!";
my @row = ($text);
$CSV->print($OUTPUT, \@row);
$OUTPUT->autoflush(1);
Я также пробовал эти две строки безрезультатно:
$text = decode("Guess", $text);
$text = encode("UTF-16BE", $text);