Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-4508

ij on slavic machine does not create files with appropriate encoding


    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s:
    • Fix Version/s: None
    • Component/s: Tools
    • Labels:
    • Environment:
      PC (windows Server 2007) with codepage Cp852 (console.encoding is Cp852)
    • Issue & fix info:
      Repro attached, Workaround attached


      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

      { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr); String inputString = in.readLine(); System.out.println("inputString: " + inputString); File f = new File(inputString); f.createNewFile(); System.out.println("created a file called " + inputString); in.close(); isr.close(); }

      Sun's jdk 1.6 gives the following output:
      inputString: Českýnázev
      created a file called Českýnázev
      While IBM's jdk 1.6 does this:
      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.


        1. GarbledFilename.java
          0.7 kB
          Myrna van Lunteren



            • Assignee:
              myrna Myrna van Lunteren
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: