首页 > 解决方案 > 在用户级别使用 UTF-8 编码启动 SAS 会话

问题描述

在我的工作场所,我们在 Unix 服务器上使用 SAS v9.3。我需要在用户级别将 SAS 会话的编码更改为 UTF-8。为此,我在 /home 目录中创建了一个 sasv9.cfg 文件,并尝试将 ENCODING latin1 作为测试(默认为 latin9)。这工作正常。但是,如果我输入 ENCODING UTF-8 它不起作用:在我启动 SAS EG 5.1 客户端后,没有与服务器的连接。详情如下:

Exception type:  SAS.EG.SDS.SDSException
SAS Message:     [Error] The launch of the server process failed because of a SAS kernel initialization failure.

Raw Message:     <?xml version="1.0" ?><Exceptions><Exception><SASMessage severity="Error">The launch of the server process failed because of a SAS kernel initialization failure.</SASMessage></Exception></Exceptions>
Source:          SAS.EG.SDS.Model
Target Site:     SASWorkspace

Stack Trace:
   à SAS.EG.SDS.Model.Server.SASWorkspace()
   à SAS.EG.SDS.Views.View.DoPopulate(DisplayOperation& op)

从我在连接时读到的内容中,它通过指向 bin/sas_fr 的符号链接 /[sashome]/SASFoundation/9.3/sas 产生一个会话

但我需要通过 /[sashome]/SASFoundation/9.3/sas_dbcs 代替(仅适用于我的用户帐户)。我怎样才能做到这一点?

除非有其他解决方案!

谢谢您的帮助。

标签: encodingsas

解决方案


得到 SAS 技术支持的答复:

“您看到的内核错误是由启动 SBCS(单字节字符集)SAS 并尝试指定双字节编码(例如 UTF-8)引起的。”

运行此命令后:cd [SAS CONFIG PATH]/Lev1/AppSAS-prod/WorkspaceServer echo "endsas;" | bash -x ./WorkspaceServer.sh -verbose -nodms -oplist -stdio > /tmp/launchSAS.txt 2>&1

并检查了 launchSAS 文件,他们得出的结论是问题出在 SAS 中 PATH 选项的处理上。我会话中的有效值为: PATH !SASROOT/sasexe /[SUDAAN HOME]/SUDAAN/v11.0.3/Linux64/SASCallable /usr/local/lib !SASROOT/dbcs/sasexe !SASROOT/sasexe

!SASROOT/sasexe 出现在 !SASROOT/dbcs/sasexe 之前。这就是我启动 SBCS SAS 会话的原因。

我们的三个配置文件中有 PATH 选项的设置,但需要修复的是 /[SASHOME]/SASFoundation/xx/sasv9_local.cfg

!SASROOT/sasexe 已从 PATH 中删除。


推荐阅读