using new smart_str resolve problems with different charset