Kbase P145463: SQL-92 clients display the Russian Numero symbol incorrectly
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  29/04/2009 |
|
Status: Unverified
SYMPTOM(s):
SQL-92 clients display the Russian Numero symbol incorrectly
ODBC client incorrectly displays the Russian Numero symbol
JDBC client incorrectly displays the Russian Numero symbol
Unable to write the Russian Numero symbol back to the database via ODBC
FACT(s) (Environment):
Numero symbol is displayed correctly by ABL clients
_SQLSRV2 uses the database code page and ignores -cpinternal
ODBC driver uses the OS locale setting to determine code page
Client PC is using Russian Windows so OS code page is 1251
Database code page is IBM866
Database uses startup parameters:
-cpinternal ibm866
-cpstream ibm866
-cpcoll russian
ABL Clients use startup parameters:
-cpinternal 1251
-cpstream 1251
-cpcoll russian
Conversion table between 1251 and IBM866 is correct
OpenEdge 10.x
All Supported Operating Systems
CAUSE:
Bug# OE00183540
CAUSE:
The conversion table from ISO8859-5 to IBM866 is incorrect. Internally, inside the data handling layers of the ODBC driver and of the server, data is sent between client and server in UTF-8 form. In this case, the ODBC driver will convert the code page 1251 data to UTF-8 and send the UTF-8 data to the server. The server will convert the UTF-8 data to code page IBM866. However, there is no direct conversion from UTF-8 to IBM866 so the conversion is achieved by a two-step conversion going via ISO8859-5. The incorrect conversion table causes the wrong character to be returned instead of the Numero symbol.
FIX:
1) Create a file called utf866.dat in $DLC/prolong/convmap
2) Open the file in Notepad and add the conversion table information from the Note below
3) Save utf866.dat
4) Open the file $DLC/prolong/convmap/convmap.dat
5) Add the following entry to the end of the convmap.dat file:
# Tables for codepage UTF866
INCLUDE
INCLUDE-FILE utf866.dat
6) Backup file $DLC/convmap.cp
7) Start PROENV and run the command:
proutil -C codepage-compiler $DLC/prolong/convmap/convmap.dat $DLC/prolong/convmap/convmap.cp
8) Replace $DLC/convmap.cp with $DLC/prolong/convmap/convmap.cp