2

我目前有一个包含泰语字符的 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;

我也尝试了各种编码,我还遇到了一个错误,说不能从 utf-16le 转换为 wlatin1。

有什么办法可以让这个字符显示在 SAS 表中?

4

1 回答 1

1

我相信您的 SAS 会话必须使用正确的编码。如果您打开与 sas.exe 文件位于同一目录中的 sasv9.cfg 文件,您将看到以下行:

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

将“en”更改为“u8”并重新打开 SAS 并导入文件。

一般来说,留在 u8 中并不是一个好习惯,因为它会阻止其他用户打开 utf-8 编码的 SAS 数据集。

于 2015-11-12T20:43:02.307 回答