将泰语字符输入 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的主要内容,如果未能解决你的问题,请参考以下文章