support surrogate characters