Kbase P143107: Arabic characters are written to text files incorrectly in OpenEdge
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  14/05/2009 |
|
Status: Unverified
SYMPTOM(s):
Arabic characters are converted incorrectly when writing them to output files.
Arabic characters defined in the 1256 code page are converted to the wrong character when writing to output files.
The characters are entered on an Arabic keyboard with ALT+0nnn. For example the accented é and è characters ALT+0233 and ALT+0232.
The entered characters look correct in the Progress session (e.g. after updating a variable), but when they are written to a file they are converted to some other character.
Outputting the characters using the CHR function, e.g. CHR(232,"1256","1256") can also be converted incorrectly.
FACT(s) (Environment):
The session is started with -cpinternal 1256 -cpstream 1256 -cpcoll basic, or -cpinternal 1256 -cpstream UTF-8 -cpcoll basic.
All Supported Operating Systems
OpenEdge 10.x
CAUSE:
Bug# OE00184400
FIX:
None at this time.
The problem is the 1256 to utf-8 conversion table in utf-8.dat. The line with the error is:
/*224-239*/ 224 0x644 226 0x645 0x646 0x647 0x648 230 231 232 233 234 0x649 0x64A 238 239
When it should be:
/*224-239*/ 224 0x644 226 0x645 0x646 0x647 0x648 231 232 233 234 235 0x649 0x64A 238 239
So to work around this do the following:
1. Backup the convmap.cp file in the OpenEdge installation directory.
2. Edit the <install>\prolang\convmap\utf-8.dat file as described above.
3. Recompile convmap.cp using proutil and the CODEPAGE-COMPILER option as described in solution 16242.
4. Copy the resulting convmap.cp file to the OpenEdge installation directory and re-start the session.