サロゲートペア代替文字処理の不備
連続するサロゲートペアが現れるUnicode文字列(⊇UCS-4文字で記述されたUnicode文字列)をContentBuilderUCS2.javaに読み込ませた時の代替文字置換処理に不備が発見された。
U+1F411を表す連続したサロゲートペアchar文字、[\ud83d,\udc11]を入力すると、[ 0xd8,0x3d、0xdc、0x11 ]の4つのデコードエラーと共に代替文字4文字からなる"????"が出力されるはず。だが"????"の後に\udc11が追加された5文字が出力される。
この障害はチケット#36356の調査中に露見したものである。 少なくとも JinParser 1.407.2 の頃から存在する障害。
※サロゲートペアが異常系として処理されること自体は仕様。
後続サロゲートペアchar文字を代替文字列に含めないよう修正が必要。
JinParser 1.408.6 にて対処。 https://osdn.jp/rel/jindolf/JinParser/1.408.6
JinParser1.409.2よりサロゲートペア出現は正常系として通すようになった。
サロゲートペアを異常系として弾くのはJindolf側の責務となった。(EntityConverterのオプション機能としてサロゲートペアを弾くオプションを追加)
JinArchiverではサロゲートペアを弾かない仕様となる予定。
連続するサロゲートペアが現れるUnicode文字列(⊇UCS-4文字で記述されたUnicode文字列)をContentBuilderUCS2.javaに読み込ませた時の代替文字置換処理に不備が発見された。
U+1F411を表す連続したサロゲートペアchar文字、[\ud83d,\udc11]を入力すると、[ 0xd8,0x3d、0xdc、0x11 ]の4つのデコードエラーと共に代替文字4文字からなる"????"が出力されるはず。だが"????"の後に\udc11が追加された5文字が出力される。
この障害はチケット#36356の調査中に露見したものである。 少なくとも JinParser 1.407.2 の頃から存在する障害。
※サロゲートペアが異常系として処理されること自体は仕様。
後続サロゲートペアchar文字を代替文字列に含めないよう修正が必要。