// decode behavior is return to output target 1 character
CoderResult cr = null;
//similar to getNextUChar() , input is the whole string, while outputs only 1 character
source.limit(sourceLen);
while (target.position() != target.limit()
&& source.hasRemaining()) {
cr = decoder.decode(source, target,
source.limit() == sourceLen);
if (cr.isOverflow()) {