Try OpenEdge Now
skip to main content
Managing ABL Applications
ABL and R-code Deployment and Management : Maintaining User Environments : Maintaining the UNIX user environment : Extended character support entries
 
Extended character support entries
You can define mappings between standard ASCII (7-bit) characters and extended (8-bit) characters in the PROTERMCAP file. Extended characters are typically non-English alphabetical characters. OpenEdge uses these mappings to build a translation table for processing characters in the input and output streams.
If you use extended character sets, you must specify character mappings for each character set on a per-terminal basis. For example, the following code fragment from the PROTERMCAP file demonstrates how to map characters on the Wyse 60 keyboard to German language characters:
ger|german|wy60 in german mode:\
:IN(\102)=\341:\
:IN(\101)=\216:\
:IN(\141)=\204:\
:IN(\117)=\231:\
:IN(\157)=\224:\
:IN(\125)=\232:\
:IN(\165)=\201:
The IN statements in the preceding example map ASCII characters (B, A, a, O, o, U, and u) to German characters (ß, Ä, ä, Ö, ö, Ü, and ü). When OpenEdge sees the character A (\101) on input, it converts the character to Ä (\216). Likewise, when OpenEdge needs to send an Ä to the terminal, it sends (\101). The terminal sees A and displays Ä.
Suppose the terminal cannot display an Ä. You can use the OUT statement to specify an appropriate character to display for Ä, such as capital A. For example:
:OUT(\216)=\101:
The IN and OUT statements express both the ASCII character and the extended character in octal (\nnn) format.
Given the appropriate PROTERMCAP file entries for a language and terminal, set the TERM environment variable to terminal/language (for example, TERM=wy60/german).
You can also specify character mappings for the input and output streams using the MAP option with each of the following ABL language elements:
*INPUT FROM statement
*INPUT THROUGH statement
*INPUT-OUTPUT THROUGH statement
*OUTPUT THROUGH statement
*OUTPUT TO statement
For more information about these language elements, see the OpenEdge Development: ABL Reference.