Unexpected replacement character handling on stateful CharsetEncoder

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: P3
    • tbd
    • Affects Version/s: 17
    • Component/s: core-libs
    • None

      EBCDIC Mix charsets and ISO-2022 related charsets are stateful charsets.
      I mean,
      For EBCDIC Mix,
      SO(Shift Out) and SI (Shift In) characters are required to switch from SBCS (Single Byte Character Set) to DBCS (Double Byte Character Set), or from DBCS to SBCS.

      For ISO2022 related,
      Escape sequence is required to switch encoder.

      I checked stateful charsets,
      ======
      $ jdk-17.jdk+19/Contents/Home/bin/java StatefulEncoderTest1.java
      ISO-2022-JP: \x20\x21\x29<->\x20\x1B\x24\x42\x21\x29\x1B\x28\x42
      ISO-2022-JP-2: \x20\x21\x29<->\x20\x1B\x24\x42\x21\x29\x1B\x28\x42
      ISO-2022-KR: \x1B\x24\x29\x43\x0E\x21\x21\x3F<->\x1B\x24\x29\x43\x0E\x21\x21\x0F\x3F
      x-IBM1364: \x0E\x40\x40\x6F\x0F<->\x0E\x40\x40\x0F\x6F
      x-IBM930: \x0E\x40\x40\x6F\x0F<->\x0E\x40\x40\x0F\x6F
      x-IBM933: \x0E\x40\x40\x6F\x0F<->\x0E\x40\x40\x0F\x6F
      x-IBM935: \x0E\x40\x40\x6F\x0F<->\x0E\x40\x40\x0F\x6F
      x-IBM937: \x0E\x40\x40\x6F\x0F<->\x0E\x40\x40\x0F\x6F
      x-IBM939: \x0E\x40\x40\x6F\x0F<->\x0E\x40\x40\x0F\x6F
      x-ISO-2022-CN-CNS: \x1B\x24\x29\x47\x0E\x21\x21\x3F<->\x1B\x24\x29\x47\x0E\x21\x21\x0F\x3F
      x-ISO-2022-CN-GB: \x1B\x24\x29\x41\x0E\x21\x21\x3F<->\x1B\x24\x29\x41\x0E\x21\x21\x0F\x3F
      x-windows-50220: \x20\x21\x29<->\x20\x1B\x24\x42\x21\x29\x1B\x28\x42
      x-windows-50221: \x20\x21\x29<->\x20\x1B\x24\x42\x21\x29\x1B\x28\x42
      x-windows-iso2022jp: \x20\x21\x29<->\x20\x1B\x24\x42\x21\x29\x1B\x28\x42
      ======

      Above charsets test result is not expected.

            Assignee:
            Ichiroh Takiguchi
            Reporter:
            Ichiroh Takiguchi
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: