mm, it does seem to be convert that's wrong.. these days (I'm using oracle 10g), it appears a clob is assumed to simply be in the same character set as varchar2 (unlike nclob, which usually is AL16UTF16), but using convert on it gives wrong results (instead of converting to AL32UTF8, it converts to AL16UTF16)