RFR: 8266013: Unexpected replacement character handling on stateful CharsetEncoder
Ichiroh Takiguchi
itakiguchi at openjdk.java.net
Tue Apr 27 16:56:58 UTC 2021
When an invalid character is converted by getBytes() method, the character is converted to replacement byte data.
Shift code (SO/SI) may not be added into right place by EBCDIC Mix charset.
EBCDIC Mix charset encoder is stateful encoder.
Shift code should be added by switching character set.
On x-IBM1364, "\u3000\uD800" should be converted to "\x0E\x40\x40\x0F\x6F", but "\x0E\x40\x40\x6F\x0F"
SI is not in right place.
Also ISO2022 related charsets use escape sequence to switch character set.
But same kind of issue is there.
-------------
Commit messages:
- 8266013: Unexpected replacement character handling on stateful CharsetEncoder
Changes: https://git.openjdk.java.net/jdk/pull/3719/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3719&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8266013
Stats: 248 lines in 3 files changed: 228 ins; 12 del; 8 mod
Patch: https://git.openjdk.java.net/jdk/pull/3719.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3719/head:pull/3719
PR: https://git.openjdk.java.net/jdk/pull/3719
More information about the nio-dev
mailing list