Ticket #6723 (closed defect (bug): fixed)

Opened 4 years ago

Last modified 4 years ago

get_page_uri returns invalid URLs for multibyte page slug

Reported by: lilyfan Owned by: ryan
Priority: normal Milestone: 2.6
Component: I18N Version: 2.5
Severity: normal Keywords: permalink, slug
Cc:

Description

If a page has a multibyte page slug (like %E4%BE%8B ; means "example" in japanese), get_page_uri() returns invalid URL as " http://example.com/例/". It is not compliant with RFC 1748, because a UTF-8 character is inlcuded in the path. The reason is that get_page_uri() does "urldecode($page->post_name)". Thus "%E4%BE%8B" is decoded to "例" (a UTF-8 character).

The solution is to avoid using urldecode().

Attachments

page-encoded-urls.diff Download (631 bytes) - added by nbachiyski 4 years ago.

Change History

comment:1   ryan4 years ago

  • Owner changed from anonymous to ryan

The urldecode calls were introduced long ago in [1841] (1.3-alpha-4) when for some reason page names were double encoded.

The patch is attached.

comment:3   ryan4 years ago

  • Status changed from new to closed
  • Resolution set to fixed

(In [8096]) Don't decode slug in get_page_uri(). Props nbachiyski. fixes #6723

Note: See TracTickets for help on using tickets.