кодировка файла из любой кодировки в UTF-8 в Linux Perl - PullRequest
0 голосов
/ 03 июля 2019

Я хочу преобразовать кодировку текстового файла ip.txt в US-ASCII независимо от кодировки ip.txt.

Когда я пытаюсь raw:encoding(UTF-16LE) ошибка появляется как UTF-16LE: Частичный символ в строке script.perl 10 , но когда я использую

raw:encoding(US-ASCII) ошибки похожи на ascii "\ xC0" не отображается на Unicode в строке script.perl 10.

use strict;
use warnings;

my $old= '/home/ip.txt';
my $new = '/home/out.txt';
open(my $myold, "<:raw:encoding(UTF-16LE):crlf:utf8", $old) or
die "Could not open file 1 $!";
open(my $mynew, ">>", $new) or
die "Could not open file 2 $!";
while( my $line = <$myold> )
{
    print {$mynew} $line;
}

close($myold);
close($mynew);

Пожалуйста, предложите, какиспользовать: raw: encoding (): lf: utf8?Что это работает, пожалуйста, объясните это тоже?

1 Ответ

0 голосов
/ 04 июля 2019

Такое ощущение, что вы просто угадываете кодировку файла.Учитывая, что есть сотни, это вряд ли будет продуктивным.Чтобы избавиться от ошибок, укажите фактическую кодировку файла.


Когда я пытаюсь использовать raw: ошибка кодирования (UTF-16LE) приходит как UTF-16LE:Partial character at script.perl line 10

Файл не кодируется с использованием UTF-16le.

, когда я использую raw:encoding(US-ASCII) ошибки похожи на ascii "\xC0" does not map to Unicode at script.perl line 10.

Файл не закодирован с использованием ASCII.(Входной файл содержит байт C0, но набор символов ASCII не содержит таких символов.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...