Может ли SAS 9.1.3 читать csv-файл с помощью utf8 BOM? - PullRequest
1 голос
/ 23 декабря 2010

Я использую SAS 9.1.3 в AIX 5.3

Мне нужно импортировать файл CSV с помощью SAS.
Первая строка CSV - это имена столбцов.
SAS сообщает об ошибке в журнале.

Затем я обнаружил, что файл CSV содержит 3 символа
(который является меткой порядка байтов utf8).
в самом начале файла.

Я пытался использовать:

filename XXX 'XXXXXXXXXX' BOM ;  

Но это синтаксическая ошибка.

Я заменяю BOM BOMFILE, все еще синтаксическая ошибка.

Кажется, что SAS 9.1.3 не может распознать параметры спецификации.

У кого-нибудь есть подобный опыт?

Ответы [ 2 ]

0 голосов
/ 26 июля 2012

SAS может прочитать это (по крайней мере, 9,1 плюс), но ваш сеанс SAS должен быть запущен с установленными параметрами кодирования DBCS.

-DBCS -encoding UTF-8

Это необходимонаходиться в файле sasconfig или в командной строке вызова.С этими параметрами кодировкой по умолчанию является Unicode для сеанса SAS.Без него опции Unicode проходят проверку синтаксиса, но не дают никакого эффекта.

Вы можете попробовать использовать оператор infile encoding = options, но для меня это никогда не работало.Для получения дополнительной информации см. Также http://www.phuse.eu/download.aspx?type=cms&docID=3658

0 голосов
/ 05 марта 2011

Вместо процедуры импорта вы можете попробовать шаг данных, подобный следующему:

data test;
  infile "data.csv" firstobs=2 dlm=',';   /* assuming delimiter is a comma */
  input                                   /* use Input with $UTF8Xw. informat */
     field1 $utf8x3.                      /* input fields 1 through 3  */
     field2 $utf8x10.
     field3 $utf8x3.
  ;
  run;
...