\cs_new:Npn \str_pdfescape:n #1
{
\exp_after:wN \__str_pdfescape:n \exp_after:wN
{ \tl_to_str:n {#1} }
}
\cs_new:Npx \__str_pdfescape:n #1
{
\exp_not:N \__str_pdfescape_main_loop:w #1
\c_space_tl \exp_not:N \q_recursion_tail \exp_not:N \q_recursion_stop
}
\use:x
{
\cs_new:Npn \exp_not:N \__str_pdfescape_main_loop:w ##1 \c_space_tl ##2
{
\exp_not:N \tl_map_function:nN {##1} \exp_not:N \__str_pdfescape_inner:N
\exp_not:N \quark_if_recursion_tail_stop:N ##2