CICS Web Support 的代码页转换

当 CICS® 与 Web 客户机或服务器交换消息时,消息中的字符数据通常需要在进入和离开 CICS 环境时进行代码页转换。

出于两个原因需要对这些消息中的文本进行代码页转换:
  • CICS 和用户编写的 CICS 应用程序通常使用 EBCDIC 编码,但 Web 客户机和服务器通常使用 ASCII 编码。
  • 在每个编码中,使用大量不同的代码页来支持本地语言。
消息的非文本内容(如图像或应用程序数据)不需要进行代码页转换。

CICS Transaction Server for z/OS®V 3 Release 1之前的 CICS 发行版中,使用代码页转换表 (DFHCNV) 来处理 CICS Web Support 的代码页转换。 在 z/OS 的 CICS 事务服务器, V 5 发行版 6 中, CICS Web 支持不再需要代码页转换表,但出于升级目的的有限情况除外。 CICS Web Support 使用 z/OS 转换服务来处理代码页转换。

在 CICS Web Support 中,文本代码页转换的缺省值为:
  • 缺省字符集是 ASCII Latin-1 字符集 ISO-8859-1。 在 HTTP 消息中,请求或状态行和 HTTP 头通常都是 US-ASCII 字符集,它是 ISO-8859-1 较早的子集。 包含文本的消息体通常是 ISO-8859-1。
  • 对于 CICS 环境中的数据,缺省 EBCDIC 代码页由 CICS 区域的 LOCALCCSID 系统初始化参数指定。 LOCALCCSID 的缺省值是 EBCDIC 拉丁字符集(代码页 037)。
有时可以标识更合适的备用代码页:
  • Web 客户机或服务器可以在 Content-Type 头中为请求或响应指定字符集,它是已用于消息体的字符集。
  • Web 客户机可以在请求上发送 Accept-Charset 头,以表明对于响应哪些字符集是可接受的。
  • 对于非 HTTP 请求和某些较早的 HTTP 实施,传输消息时使用的字符集可能未在消息头中标识,并且您可能需要从您自己对消息源的了解来标识它。
  • 如果缺省值不合适,那么应用程序员需要标识他们的应用程序可用于接收消息数据的合适代码页。

CICS 不支持 IANA 指定的所有字符集。 CICS 支持用于代码页转换的 IANA 字符集在 HTML 编码字符集中列出。

在大多数情况下,消息的介质类型可以确定是否发生代码页转换。 具有非文本介质类型的请求或响应主体通常不经历代码页转换。 与先前发行版中编码的 Web 感知应用程序兼容时发生了异常; 如果命令上使用的选项指示应用程序是在 CICS Transaction Server for z/OSV 3 Release 1之前编码的,那么介质类型不会影响代码页转换。

根据消息类型和处理路径,代码页转换信息可能由 CICS自动标识,或者在 URIMAP 定义中指定,或者由分析器程序指定,或者在 Web 感知应用程序发出的命令中指定。 CICS 作为 HTTP 服务器的代码页转换 解释了 作为 服务器的过程,而 解释了 作为 客户端的过程。 CICS HTTP CICS 作为 HTTP 客户端的代码页转换 CICS HTTP