robotframework - 如何使用 Robot Framework 在 wc3270 中设置 -charset 语言
问题描述
我尝试使用 Mainframe3270 库对大型机进行机器人操作,但我不知道如何在 Robot 中使用字符集,wc3270 不支持泰语。我尝试手动使用 wc3270 模拟器,它可以通过选项字符集设置语言并选择语言,但我不知道如何在机器人中执行此步骤
*** Settings ***
Library Mainframe3270
*** Keyword ***
Update Credit Card
Open Connection ${HOSTNAME}
Change Wait Time 0.9
Page Should Contain String PLEASE LOGON FOLLOW MENU TO SCB MAINFRAME S/390
Write Bare ${LOGINCMD} #login B2K
Send Enter
${getStatus} Read 12 18 3
我想得到泰文,但我得到了????????? text 而是因为 wc3270 无法显示泰语。请任何人帮助我。
解决方案
根据 wc3270 的此文档页面:
http://x3270.bgp.nu/wc3270-man.html#Character-Sets
泰语支持至少在 wc3270 的某些版本中可用。尝试wc3270 -v
查看您的构建是否支持它。如果是这样,您可以使用该-charset thai
选项(或-charset cp1160
,或 中的等效项wc3270.charset
)。
如果你使用这个框架:
https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library
然后您可以简单地破解 Python 源代码以添加该代码页参数。如果我正确阅读了当前的源代码(不确定),那么您可以在 p3270.py 中更改一行。寻找这一行:
args = ['-xrm', 'wc3270.unlockDelay: False', '-xrm', 'wc3270.model: 2']
并将其更改为(全部一行):
args = ['-xrm', 'wc3270.unlockDelay: False', '-xrm', 'wc3270.model: 2' '-xrm', 'wc3270.charset: thai']
这应该有效。这可能不是最好、最优雅的解决方案——也许你可以做得更好。
根据 wc3270 文档,您还需要确保将 Microsoft Windows(运行 wc3270 的地方)设置为泰语。
推荐阅读
- c# - 无法更改实例化游戏对象的 transform.position
- visual-studio-code - VS Code V1.25 点击选项卡不再展开窗口
- jquery - 使用 AJAX 从 JSON 文件中获取数据。如何使用 jQuery 缩短代码?
- google-cloud-platform - (gcloud.compute.scp) 无法获取资源
- angularjs - Angularjs 手风琴在我的项目中不起作用
- arrays - 我有一个数组数组,如描述中需要将其转换为 Ruby 中的格式化哈希
- c# - 如何使用复选框更新实体框架中的记录
- reactjs - 无法在反应中使用打字稿读取 window.sessionStorage.getItem('anyproperty')
- laravel - 从共享主机连接 Google Cloud Postgres
- python - sys.stdout.write() - 屏幕输出与 > 重定向('charmap' 编解码器)