[wp-trac] [WordPress Trac] #55274: Special chars in attachment filename breaks srcset

WordPress Trac noreply at wordpress.org
Mon Feb 28 11:53:10 UTC 2022

#55274: Special chars in attachment filename breaks srcset
 Reporter:  dravnic       |       Owner:  audrasjb
     Type:  defect (bug)  |      Status:  reviewing
 Priority:  normal        |   Milestone:  6.0
Component:  Media         |     Version:
 Severity:  normal        |  Resolution:
 Keywords:                |     Focuses:

Comment (by dravnic):

 I've tried using {{{esc_url()}}} like in
 https://core.trac.wordpress.org/attachment/ticket/36549/36549.2.diff but
 it didn't help.

 The image filename that I used to test this is {{{smeće-1024x614.png}}}
 the special char in this filename is {{{ć}}} - a Croatian letter. In the
 src attribute path is properly encoded {{{sme%C4%87e-1024x614.png}}}}

 With current code and with {{{esc_url()}}} the image was encoded in srcset
 as {{{smeće-1024x614.png}}} which is an invalid url.

 When patched with
 https://core.trac.wordpress.org/attachment/ticket/55274/55274.3.diff it
 was encoded as {{{sme%C4%87e-1024x614.png}}} which is ok.

 So {{{rawurlencode()}}} seems a better option, but it cannot be used after
 filter because then it would encode entire url not only filename. Maybe to
 extract filename from the full path and then encode it and append back on
 its path. Although directory name can as well contain special chars. To
 cover these cases it work require a bit more logic.

 It would be great if we could encode before the filter and then leave it
 to filter to handle its urls properly.

Ticket URL: <https://core.trac.wordpress.org/ticket/55274#comment:6>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list