Kbase P18827: Application using JDBC driver displays incorrect characters
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/17/2003 |
|
Status: Unverified
FACT(s) (Environment):
Windows 32 Intel
FACT(s) (Environment):
Progress 9.1D
SYMPTOM(s):
Java-based web application
UTF-8 Progress database
JDBC driver reading data from database
JDBC data not displaying in unicode
Most characters with ASCII values between 128 -160 display as rectangles
4GL client sessions display data in unicode as expected
CHANGE:
Running a web-based program using Progress JDBC driver to extract data from a Progress 4GL database.
CAUSE:
The unicode values within the database are the wrong ones for SQL-92 or ODBC to display when the values are set by 4GL client using default cpstream and cpinternal codepages (ISO8559-1). The codepage conversion is ISO8859-1 to/from UTF-8 unicode.
The desired data that does not display is defined in Windows 1252 (Latin 1) codepage and 1250 (Central Europe). SQL-92 or ODBC will convert automatically to codepage 1252 when extracting data from unicode databases. The problem is the manner in which the data was placed in the unicode database by the 4GL client using ISO8859-1 codepage. The data is invalid between UTF-8 and 1252.
The 4GL client can see the data correctly because the backwards conversion of unicode to ISO8859-1 is displayed by Windows default font in 1252 codepage.
FIX:
Start the 4GL client prowin32 with -cpinternal and -cpstream set to 1252