-
Bug
-
Resolution: Unresolved
-
P3
-
17
-
None
-
generic
-
generic
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.
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.
- links to
-
Review openjdk/jdk/3719