This article is now available in our new knowledge base: Set CCSID and Language options for FastCGI and Apache on the IBM i
Zend Server for IBM i provides a menu option to set CCSID and Language options for Apache and FastCGI. This article tells how to make the recommended settings.
Zend Server for IBM i running on any supported version of IBM i.
Please use the menu option to set CCSID and Language options for FastCGI and Apache.
From the 5250 Command line:
For Zend Server version 5:
For Zend Server version 6 or higher:
For versions up to 8.0.2, use option "8. Set Zend Server Language/CCSID environment".
For versions 8.5 and higher, use option "80. Configurations" and then "2. Set Zend Server Language/CCSID environment"
Under the heading "FastCGI Language and CCSID settings", please set the CCSID to 1208. Leave the Language ID set to 'C'.
Under the heading "Apache web server settings", please set the value for DefaultFsCCSID and CGIJobCCSID to the recommended value for your language (see note below).
Press Enter to update, and then restart Apache for this change to take effect.
Note: To determine the default CCSID for your language, you can try this trick. From a 5250 command line:
On the "Display Job" display, use option "2. Display job definition attributes". On the "Display Job Definition Attributes" display, page up a few times until you come to the Language entries:
Language identifier . . . . . . . . . . . . . . . : ENU
Country or region identifier . . . . . . . . . . : US
Coded character set identifier . . . . . . . . . : 65535
Default coded character set identifier . . . . . : 37
Use the value set for "Default coded character set identifier". In this example the CCSID to use is '37'. If you need to include the Euro, please see the additional note below.
Here is an example of the options that would be set in a typical U.S. installation:
Set Zend Server Language/CCSID Environment
IBM i server CCSID and Language settings
System CCSID . . . . . .: 65535
Job CCSID . . . . . . . . 65535
Language ID . . . . . . : ENU
FastCGI Language and CCSID settings (/www/zendsvr6/conf/fastcgi.conf)
CCSID (ASCII) . . . . . : 1208 Number, 819(Latin), 1208(UTF-8)...
Language ID . . , , , , : C en_US, de_DE, fr_FR...
Link for ASCII CCSID and Language table codes:
Apache web server settings (/www/zendsvr/conf/http.conf)
DefaultFsCCSID. . . . . : 37 Number, 37(ENU), 297(FRA), 273(DEU)...
CGIJobCCSID . . . . . . : 37 Number, 37(ENU), 297(FRA), 273(DEU)...
Find a CCSID that includes the Euro
IBM has provided some enhanced EBCDIC character sets to include the Euro. If you need the Euro, please find your EBCDIC CCSID (the one used for DefaultFsCCSID) on this page:
Find your CCSID on this page and click it. This should take you to a detail page for your CCSID. For example, if we click on 37 we get to this page:
In the notes section, there is this text:
Related CCSID with euro is 1140
So, if we need the Euro, we could set DefaultFsCCSID and CGIJobCCSID to 1140. Of course, this might also be the current CCSID for our job, as described in the main section above. In this case, we would look at the page for 1140:
And see this note:
Related CCSID without euro is 37
Then we would know this is the correct CCSID to contain the Euro, and this is the correct setting.
ibm_db2 settings for DBCS
For DBCS, there are a couple of settings for the ibm_db2 extension that can help insure your DBCS characters are translated correctly for display on the web. These settings can be accessed in the Zend Server User Interface, on the Configurations -> PHP tab. Please find ibm_db2 on the list of PHP extensions (under the heading "Name") and click it once to expand the list of related directives for the extension. Find this directive:
The default value is "no expanded allocations". Please use the drop down to select "use expanded allocations". This will insure that internal buffers used to store DBCS columns are sufficiently large to contain the DBCS data. Click the "Save" button (upper left, above the table) to save the change, then restart for the change to take effect.
Users of Zend Server 7 or later may also find this directive:
This directive can force the use of UTF 8 under some circumstances. If you are having difficulty getting your DBCS characters to display correctly, please try adjusting this setting. The default is "default PASE CCSID". Try changing it to "force utf-8 PASE CCSID (better DB2 operations)". As before, click "Save" and restart for the change to take effect. This directive is only available for ibm_db2 running on the IBM i. It cannot be implemented for connections from other platforms.