encoding - 在用户级别使用 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 代替(仅适用于我的用户帐户)。我怎样才能做到这一点?
除非有其他解决方案!
谢谢您的帮助。
解决方案
得到 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 中删除。
推荐阅读
- c++ - CMake 和 VS 2017:找不到任何 Visual Studio 实例
- c# - BadImageFormatException:试图在 C# 中使用 C++ DLL 文件?
- ios - 如何在 Firebase Storage 中检索现有图像并将其显示在 Swift 5 的 UICollectionViewCells 中?
- node.js - Discord.js:setParent() 不是一个函数,但在文档中它显示它是
- google-apps-script - 如何从特定单元格开始动态获取范围到工作表末尾?
- c++ - 链接器错误:丢弃部分中静态 constexpr 初始化程序列表成员变量的定义
- javascript - Passport.js:LocalStrategy 如何访问用户信息?
- redux - 减速器错误取消所有任务,杀死所有传奇
- javascript - 是否总是需要使用 await 调用异步函数?
- python-3.x - Beautiful Soup 4 自定义属性顺序输出