support non-utf-8 byes and reserve_data