I no longer like the idea of using a null Character to disable the setting, as it entails implicit or explicit boxing for the user code.
Option 2) above was intended to allow the existing char (if any) to be preserved.
However, using setEscape(true) would need to check if an escape had been set, so I think it was not a good idea either.
Another possibility would be to provide no-arg versions of the with() methods.
1) withNoEscape() withNoEncapsulator() withNoCommentStart()
3) withEscape() withEncapsulator() withCommentStart()
4) withEscapeNone() withEncapsulatorNone() withCommentStartNone()
Option4 above is just option 1 renamed to look more like the existing methods.
Other renames are possible.