【问题标题】:PL/I character set and IBM Personal Communications - wrong characters are displayedPL/I 字符集和 IBM Personal Communications - 显示错误字符
【发布时间】:2017-01-24 19:18:53
【问题描述】:

我在编辑器中输入的某些字符显示与键盘上的不同。所以我有这样的错误消息:

十进制值为176的字符不属于PL/I字符 放。它将被忽略。

在尝试编译 PL/I 程序时。

有时字符甚至可以正常显示,但我仍然有类似的错误消息。

此字符的示例是表示逻辑或、逻辑非的字符。

如何解决这个问题?是编辑器的设置,还是 IBM Personal Communications 程序的设置?或者最好输入这些符号的 16 位代码(如果可能,如何执行此操作,以及如何确定我需要什么代码)?

【问题讨论】:

  • 您使用的是 3270 ISPF 吗? ISPF GUI 客户端? RD/Z?编译器期望哪个代码页? ISPF(假设您正在使用它)使用哪个代码页?您的 3270 仿真器(假设您使用的是一个)使用哪个代码页?
  • 听起来您输入的任何内容都是使用损坏的垂直条与垂直条。这与@cschneid 的评论一致。此外,一些欧洲代码集交换了竖线和感叹号(德语就是一个很好的例子)。请给我们更多信息。

标签: mainframe pl-i


【解决方案1】:

很多地方都会出错……

  1. 必须针对您使用的键盘正确配置客户端计算机上的键盘驱动程序。但是,如果其他程序正常工作并且只有大型机仿真行为异常,那么这应该没问题。
  2. PCOMM 会话必须配置为使用正确的主机代码页。询问您的大型机技术人员使用什么并相应地配置您的终端仿真。由于我们不使用 PCOMM,因此我无法为您提供帮助,因此您必须查看一下会话设置。
  3. 在 PL/I 中,大多数字符取自大多数 EBCDIC 代码页中相同的范围。主要的例外是 OR- 和 NOT- 运算符的字符可能不同。 IBM 对 OR 的默认值为 '4F'X,它在代码页 1140(英语)中是一个竖线字符 '|',但在代码页 1141(德语)中是一个感叹号 '!'。 NOT 的默认值为 '5F'X,这是 1140 中的逻辑非符号 '¬',但 1141 中是插入符号 '^'
    由于这些问题众所周知,编译器提供了两个选项OR()NOT() 来设置这些运算符要使用的字符。因此,您可能会在编译列表中查看这些参数是否在您的安装中设置以及它们的值是什么,因为这些是您必须使用的字符。

【讨论】:

  • 但是必须输入 OR 或 NOT 是额外的工作,当您希望能够从 SO 中粘贴一些东西时 :-)
  • @BillWoodger 问题是在你的源代码中你必须使用操作符,因为ORNOT 不是 PL/I 中的关键字(希望我确实理解你的评论)。如果PROCESS-compile-option 有效,可能会考虑使用PROCESS-statement 在每个程序的基础上设置OR-和NOT-选项。
  • 谢谢。我误解了 OR() 和 NOT()。用于更改用作 or/not 运算符的符号的编译器选项?并且您无法优先于运算符键入 OR 或 NOT,因为 OR 和 NOT 不存在。到达那里...
猜你喜欢
  • 2021-12-03
  • 1970-01-01
  • 2020-02-10
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 2014-11-27
  • 1970-01-01
相关资源
最近更新 更多