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

ij on slavic machine does not create files with appropriate encoding

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 10.5.3.0
    • None
    • Tools
    • 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

      { 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:
      ------------------
      Č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.

      Attachments

        1. GarbledFilename.java
          0.7 kB
          Myrna van Lunteren

        Activity

          People

            Unassigned Unassigned
            myrna Myrna van Lunteren
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: