detect and handle utf16 non-BMP characters (surrogate pairs)