Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4201263

Use proper character encoding in System.out and System.err on Win=

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 1.2.0
    • core-libs
    • x86
    • windows_95



      Name: diC59631 Date: 01/07/99

      =20
      THIS IS AN IMPORTANT FEATURE REQUEST FOR NON-ENGLISH SPEAKER USING WIN32

      RFE 4125884 was "Change System.out and System.err to be PrintWriters". This=
       RFE has been "Closed, will not be fixed" because of backward-compatibility=
       problems.

      RFE 4151267 said "java.lang.System provide Reader/Writer versions of System=
      .err, System.out". It is not done in JDK 1.2, and we don't know if it will =
      be done.

      RFE 4139481 ("java.io.PrintStream: Un-deprecate the constructors") said "Th=
      is class (PrintStream) does implement a proper character-to-byte conversion=
       using the platform's default encoding; it was deprecated merely to encoura=
      ge the use of the new java.io.PrintWriter class."

      This is the problem: PrintStream use the platform's DEFAULT encoding. In Wi=
      ndows 95, the default encoding is NOT the MS-DOS encoding. For example the =
      Windows 95's default encoding may be Cp1252, but the MS-DOS command prompt'=
      s encoding may be Cp863. It make no difference for English-only text, but i=
      t make a big difference for languages with others characters when a Java ap=
      plication is run from the command prompt. For example the sentence "Il a =
      =E9t=E9 p=EAcher =E0 c=F4t=E9 de l'=EEle" is correctly wrote on AWT compone=
      nt (which use the correct default encoding) but almost unreadeable on Syste=
      m.err, because System.out and System.err use the wrong encoding for the MS-=
      DOS command prompt ("Il a ?t? p?cher ? c?t? de l'?le").

      I'm not asking for any API change. I just want System.out and System.err to=
       use the MS-DOS encoding instead of the default encoding on Windows platfor=
      m. The MS-DOS encoding can be obtained with native code. No other changes n=
      eeded; output stream created with "new PrintStream(...)" will continue to u=
      se the default encoding.

      Use of proper encoding by System.out and System.err will help to prevent so=
      me mistake among non-English developper (please see 4028073 for an example =
      of such a mistake). If non-English speaker didn't complain to much about th=
      at before, maybe it is because we are use to that. You can't imagine the me=
      ss we receive in some non-english email!
      (Review ID: 52239)
      ======================================================================

            Unassigned Unassigned
            dindrigo Daniel Indrigo (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: