IBM.支持

CGI程序中的数据转换

消息


抽象的

CGI程序中的数据转换

内容

你在: IBM. I. Technology Updates  > 网上集成我 ibm http服务器的i > 介绍 >CGI程序中的数据转换

此页面列出有关CGI输出模式数据转换的信息。

CGI程序中的数据转换

在向CGI程序发送数据之前,服务器可以将ASCII执行到EBCDIC转换。这是因为互联网是一个ASCII世界,并且ISeries主要是一个扩展的二进制编码十进制交换代码(EBCDIC)世界。在将数据发送回浏览器之前,服务器还可以对ASCII转换执行EBCDIC。您必须通过环境变量和标准输入(STDIN)向CGI程序提供数据。 HTTP和HTML规范允许您使用字符集(Content-Type标题上的Charset参数)标记文本数据。然而,今天这种做法并不广泛使用(尽管技术上需要http1.0 / 1.1合规性)。根据本规范,可以假设未标记的文本数据在默认字符集ISO-8859-1(US-ASCII)中。 iSeries将此字符集与ASCII CCSID 819相关联。  

基本上有三种不同的方式,服务器可以处理CGI程序的输入。您可以将服务器配置为控制CgiconVMode指令来控制哪种模式。

在哪里 CGIConvMode 是以下之一 :

EBCDIC. -  This is the default.

EBCDIC._JCD.

二进制 

此外,系统还将以下CGI环境变量提供给CGI程序: 

  • cgi_mode -  服务器使用哪种输入转换模式(EBCDIC或EBCDIC_JCD或二进制)  
  • cgi_ascii_ccsid -  用于转换数据的ASCII CCSID  
  • cgi_ebcdic_ccsid.   - 用于转换数据的EBCDIC CCSID  
  • cgi_output_mode -  服务器使用的输出转换模式(EBCDIC或二进制)

因此,对于输入模式,发生以下情况:  

EBCDIC. -  系统将环境变量和STDIN数据转换为作业的CCSID。

EBCDIC._JCD. -  与EBCDIC相同,除了在日本CCSID下运行的服务器。在日语CCSID下运行的服务器使用JCD实用程序来确定用于转换的日语CCSID。  

二进制 -  服务器对STDIN数据和Query_String执行转换;所有其他环境变量都在作业的CCSID中。

CGI转换模式

以下部分更详细地解释了CGI输入转换模式。  

EBCDIC. 

在此模式下,服务器将所有内容转换为作业的EBCDIC CCSID。服务器检查Charset标记的实体主体。如果找到,则服务器将相应的ASCII CCSID转换为作业的EBCDIC CCSID。如果服务器找不到Charset标记,则它将使用DefaultNetCCSID配置指令的值作为转换CCSID。此外,系统将逃离八位字节从ASCII转换为EBCDIC,从而消除了在CGI程序中执行此转换的需要。

二进制 

在此模式下,服务器将环境变量(Query_String除外)与EBCDIC模式相同。服务器对Query_String或STDIN数据执行任何转换。

EBCDIC._JCD. 

日语浏览器可能会以三个代码页,JIS(ISO-2022-JP),S-JIS(PC-Windows)或EUC(UNIX)中的一个发送数据。在此模式下,服务器使用众所周知的JCD实用程序来确定要使用哪个代码页(如果不明确指定的Charset标签)以转换STDIN数据。

CGI STDIN文本的转换措施

此表总结了服务器对每个CGI模式执行的转换类型。  

注意:从V5R4开始,可以在容器上下文中为CGI作业设置ASCII和EBCDIC CCSID(

defaultnetnetccsid.

cgijobccsid.

指令。)在此表中,CGI作业CCSID表示用于启动CGI作业的CCSID。从V5R4开始,除非CGI容器上下文中有CGI作业CCSID,否则将从全局FSCCSID设置CGI作业CCSID。

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

文件信息

修改日期:
30 January 2020

uid

IBM.11171090.