Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
10.5.3.0
-
None
-
None
-
PC (windows Server 2007) with codepage Cp852 (console.encoding is Cp852)
-
Repro attached, Workaround attached
Description
On a machine configured with slavic codeset Cp852 ij does not always create (or access) files with appropriate characters.
For instance, consider the following string with non-ascii characters: Českýnázev
When starting ij using only defaults: java org.apache.derby.tools.ij (or using one of the ij scripts from bin) and issueing the following connect statement:
ij> connect 'jdbc:derby:Českýnázev;create=true';
ij creates a database that on the OS shows like so: ¬eskěn zev
When I have a file - e.g. simple.sql - that does this connect, the file created on the OS has the expected name (Českýnázev).
Using a simple program that does the same as org.apache.derby.iapi.tools.i18n.LocalizedInput
(only 1 method, main), with appropriate imports):
-----------------------
public static void main(String[] args) throws Exception
----------------------------------------
Sun's jdk 1.6 gives the following output:
------------------
Českýnázev
inputString: Českýnázev
created a file called Českýnázev
------------------
While IBM's jdk 1.6 does this:
------------------
Českýnázev
inputString: ¬eskěn zev
created a file called ¬eskěn zev
------------------
However in both cases the file created on the OS (dos prompt, windows explorer) looks like the way ij created the database dir:
¬eskěn zev
If we specify -Dfile.encoding=Cp852, or -Dderby.ui.codeset=Cp852 when starting ij, the file created has the expected name, so this is a workaround.