"utf8" \ x96 "не сопоставляется с Unicode в <somefile.pl> в строке № - 321" Ошибка в Perl - PullRequest
6 голосов
/ 05 августа 2011

Я настраиваю приложение Perl.Я получаю эту ошибку.«utf8» \ x96 »не отображается на Unicode в« Может кто-нибудь сообщить мне причину и решение?Я пропустил какую-либо конфигурацию или это моя проблема с установкой?

Ниже приведен код:

open(FILE,"<:encoding(UTF-8)",$self->{BASEDIR}.$self->{FILENAME}) || die "could not open file $basedir$filename - $!";

Ответы [ 3 ]

7 голосов
/ 05 августа 2011

Символ 0x96 не является допустимой кодировкой UTF-8.Чуть более 0x80 есть блок кодовых точек, который в UTF-8 кодирует начало 2- или 3-байтового символа.

Читаемый вами ввод не должен быть UTF-8 и, скорее всего, это Latin1 или CP1252.

Вам нужно будет преобразовать входные данные в UTF-8, однако это нужно сделать вPerl (я давно не делал Perl, и он не использовал UTF-8 по умолчанию, когда писал Perl: -)

6 голосов
/ 05 августа 2011

Я подозреваю, что то, что вы считаете закодированным в UTF-8, фактически не кодируется с помощью UTF-8.

1 голос
/ 28 декабря 2016

Просто разместите эту информацию на случай, если она поможет кому-то в будущем.

Если вы работаете с продуктом Microsoft, это может быть вызвано неамериканскими символами (европейскими, китайскими и т. Д.). Например, если кто-то отправляет вам электронную таблицу данных Excel, которую вам нужно обработать, и она сохраняется в формате .csv, эти символы могут находиться за пределами диапазона utf-8, если они не были сохранены должным образом.

К счастью, по крайней мере в Excel для Mac v. 15 можно взять эти данные и «сохранить как», в частности, файл CSV UTF-8 - он находится в списке параметров. Это отдельная опция от другой опции файла CSV. Это преобразует неамериканские символы в кодировку UTF-8 и решит эту проблему.

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