Перейти к содержимому

Фотография
- - - - -

чтение в кодировке 949 данных на Perl


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
В теме одно сообщение

#1 max82

max82

    Прохожий

    Топикстартер
  • Новичок
  • 0
    1 сообщ.

Отправлено 19 Апрель 2017 в 02:12

Доброе времени суток !
ни как не пойму в чем проблема , когда читаю строку так :
$str = "\xac\xa5\xac\xd1\xac\xdf\xac\xdf\x ac\xed\xac\xd6"; 
print Encode::encode('cp866',Encode :: decode('cp949', $str)) ;
То все в порядке и печатает слово "Данные".

если считываю из файла ту же вроде строку : \xac\xa5\xac\xd1\xac\xdf\xac\xdf\xa c\xed\xac\xd6
то не печатает слово "Данные"
подскажите что не так делаю ! ((

пример (кусок кода):
open(FILE,'0011.txt') or die ("ERROR FILE $!");
while (<FILE>) { 
$str = $_;
print Encode::encode('cp866',Encode :: decode('cp949', $str)) ;
} 
close(FILE);
очень нужно.reputation.gif report.gif  

  • 0

Спонсор

#2 BaNru

BaNru

    Пацифизжу

  • суперМодератор
  • 980
    3 502 сообщ.

Отправлено 19 Апрель 2017 в 03:20

Perl не знаю, но первая же ссылка в гугле вот что показывает

my $filename = 'data.txt';
open(my $fh, '<:encoding(UTF-8)', $filename)
  or die "Could not open file '$filename' $!";

while (my $row = <$fh>) {
  chomp $row;
  print "$row\n";
}

1) при открытие указывается кодировка

2) файл сразу открывается в переменную

 

Попробуй так сделать.

Или для твоего пример - попробуй вывести файл в "оригинальной" кодировке, без преобразования. Если ничего не выведет, то значит неверно открываешь файл и ен(де)кодер тут не при чем.

 

Вторым вариантом - попробуй сначала открыть файл с нормальной кодировкой.


  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей