Добавление тайского символа в SAS

В настоящее время у меня есть файл xlsx с тайскими символами, который правильно отображается в Excel.

тайский символ отображается в Excel

Однако, когда я импортирую этот файл в SAS EG 4.3 (также пробовал в 5.1), тайские символы отображаются как «???»

После импорта в SAS

Вот пример кода для того же

DATA WORK.pthai;
LENGTH F1 $4 ;
FORMAT F1 $UTF8X4. ;
INFORMAT F1 $UTF8X4. ;
INFILE 'C:\Users\rohit_000\AppData\Local\Temp\SEG12960\pthai-507bc48108424b79810743ea724b0861.txt'
    LRECL=4
    ENCODING="WLATIN1"
    TERMSTR=CRLF
    DLM='7F'x
    MISSOVER
    DSD ;
INPUT F1 : $UTF8X4. ;
RUN;

Я также пробовал все виды кодирования, и я также столкнулся с ошибкой, говорящей о том, что невозможно преобразовать в wlatin1 из utf-16le.

Есть ли способ заставить этот символ отображаться в таблицах SAS?


person Rohit Acharya    schedule 15.10.2015    source источник
comment
мне интересно, у вас есть excel, вы импортируете текстовый файл в свой код.   -  person kl78    schedule 15.10.2015
comment
Я экспериментировал с различными вариантами, поэтому я попытался получить данные внутри, используя txt   -  person Rohit Acharya    schedule 15.10.2015
comment
Существует кодировка для тайского языка, см. эту таблицу: support.sas.com/documentation/cdl/en/nlsref/61893/HTML/default/ Но я никогда не использовал его, я думаю, вам нужно проверить, работает ли это.   -  person kl78    schedule 15.10.2015
comment
эй, kl78, спасибо за быстрый ответ, я попробовал все тайские кодировки в списке, но напрасно, я получаю введенные значения мусора, и каждый раз они разные, например. ДАННЫЕ РАБОТАЮТ.pthai21; ДЛИНА F1 $ 4 ; ФОРМАТ F1 $CHAR4. ; ИНФОРМАЦИЯ F1 $CHAR4. ; INFILE 'C:\Users\rohit_000\Desktop\pthai.xlsx' LRECL=4 ENCODING=ebcdic838 TERMSTR=CRLF DLM='7F'x MISSOVER DSD ; ВВОД F1: $CHAR4. ; БЕЖАТЬ; Я получил screencast.com/t/Lw49Obd4AoU   -  person Rohit Acharya    schedule 15.10.2015
comment
В какой кодировке вы запускаете SAS? А Винда?   -  person Joe    schedule 15.10.2015
comment
Вы можете попробовать использовать параметр encoding=utf-8 в infile, если ваша система кодирования SAS — wlatin1.   -  person Shenglin Chen    schedule 15.10.2015
comment
когда я пытаюсь использовать кодировку utf-8, я получаю следующую ошибку ERROR: Invalid string. FATAL: обнаружена неисправимая ошибка ввода-вывода при выполнении программы шага DATA. Прервано на этапе ВЫПОЛНЕНИЕ.   -  person Rohit Acharya    schedule 16.10.2015


Ответы (1)


Я считаю, что ваш сеанс SAS должен использовать правильную кодировку. Если вы откроете файл sasv9.cfg в том же каталоге, что и файл sas.exe, вы увидите следующую строку:

-config "C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg"

измените «en» на «u8», повторно откройте SAS и импортируйте файл.

В общем, не стоит оставаться в u8, так как это может помешать другим пользователям открывать наборы данных SAS с кодировкой utf-8.

person Sarah Hailey    schedule 12.11.2015
comment
Большое спасибо Сара, это сработало, я искал решение для этого несколько месяцев! - person Rohit Acharya; 08.01.2016