Turns out IBM DFDL implements only encodingErrorPolicy='error', and Daffodil only encodingErrorPolicy='replace'.
That means for any data where there are encoding errors the two implementations will not behave the same. For compatibility testing, this will be problematic. The I/O layer was recently revised for parsing to use our own decoders. Not sure anything changed about encoders. How hard is implementing parse-time encodingErrorPolicy='error', in Daffodil, which just raises a parse error if a decode error occurs? I know for unparsing, if we're using java encoders, the implementation of encodingErrorPolicy='error' just requires initializing all encoders to have malformed and unmapped error handlers that throw. Then catching this throw and converting to an unparse error is all that is required. This has little or no performance implications as unparse errors are fatal.
