I must be missing something but why in C locale do I get this % echo '+' | iconv -t utf7 # ok so far +- % echo -n '+' | iconv -t utf7;echo # and it's the same thing without newline +- % echo '+-' | iconv -f utf7 # and it works in the other direction too, good + % echo -n '+-' | iconv -f utf7 # but why doesn't it work without newline? iconv: incomplete character or shift sequence at end of buffer "+-" sequence seems to be valid UTF-7 according to my reading of RFC 1642 and I'd also expect UTF-7 transformation to be reversible.
Fix in the upstream CVS.