<i18n dev> RFR: 8364365: HKSCS encoder does not properly set the replacement character

Xueming Shen sherman at openjdk.org
Wed Aug 6 00:29:04 UTC 2025


On Tue, 5 Aug 2025 08:29:21 GMT, Volkan Yazici <vyazici at openjdk.org> wrote:

>> Fix `HKSCS` encoder to correctly set the replacement character, and add tests to verify the `CodingErrorAction.REPLACE` behavior of all available encoders.
>
> test/jdk/sun/nio/cs/TestEncoderReplaceLatin1.java line 139:
> 
>> 137:             return coderResult.isUnmappable();
>> 138:         };
>> 139:     }
> 
> I'd appreciate it if you can double-check these _"Is the given `char[]` unmappable for a particular encoder?"_ test generators.

I might be missing something you're trying to do here,  but any reason why we can't just go

  return c -> !encoder.canEncode(c[0]);

as the predicate? I think we are doing 'single char', no surrogates,  here, right?

or simply do with

    private static char[] findUnmappable(CharsetEncoder encoder) {
        for (char c = 0; c < 0xff; c++) {
            if (!encoder.canEncode(c))
                return new char[]{c};
        }
        System.err.println("Could not find an unmappable character!");
        return null;
    }

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26635#discussion_r2255587104


More information about the i18n-dev mailing list