将泰语字符输入 SAS

Posted

技术标签:

【中文标题】将泰语字符输入 SAS【英文标题】:Getting Thai Character into SAS 【发布时间】:2015-10-15 09:06:55 【问题描述】:

我目前有一个 xlsx 文件,其中包含泰语字符,可以在 excel 中正确显示。

但是,当我在 SAS EG 4.3(也在 5.1 中尝试过)中导入此文件时,泰语字符显示为“???”

这是相同的示例代码

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 表中?

【问题讨论】:

我想知道,你有一个 excel,把你在你的代码中导入一个文本文件。 我正在尝试各种选项,所以我尝试使用 txt 获取里面的数据 有一个泰语的编码,见下表:support.sas.com/documentation/cdl/en/nlsref/61893/html/default/… 但我没用过,我想你必须测试一下它是否有效。 嘿 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 运行 SAS的编码是什么?窗户呢? 【参考方案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 数据集。

【讨论】:

非常感谢莎拉,这很有效,几个月来我一直在寻找解决方案!

以上是关于将泰语字符输入 SAS的主要内容,如果未能解决你的问题,请参考以下文章

右对齐包含泰语字符的字符串

在 Apple 设备上渲染带有标签的泰语字符会中断?

如何在Objective C中使用XML解析发布带有特殊字符和泰语的字符串?

我如何检查字符串是返回布尔值的泰语,如 isalpha()

如何在SAS(大学)中将char字符转换为日期?

sas中反转字符串的方法