HomePhabricator

Allow slugs to contain most utf8 characters

Description

Allow slugs to contain most utf8 characters

Summary:
Ref T2632. Fixes T1466.

Currently, we normalize slugs (and thus Phriction URIs and canonical project names) to a small number of latin characters. Instead, blacklist a few characters and permit everything else (including utf8 characters).

When generating Phriction URIs, encode any utf8 characters. This means we render URIs encoded, but browsers handle this fine and display them readably in the URI and address bar, etc.

The blacklisted characters are mostly for practical reasons: \x00-\x19 are control characters, #%? are meaningful in URIs, + is sometimes configured to be interprted as space by apache, etc., <>\\ are just silly, &= are largely cosmetic.

This allows some silly stuff, like generating URIs with zero-width spaces and RTL markers in them. Possibly we should go blacklist those characters at some point.

Depends on: D5191

Test Plan: {F34402}

Reviewers: AnhNhan, chad, vrana

Reviewed By: chad

CC: aran

Maniphest Tasks: T1466, T2632

Differential Revision: https://secure.phabricator.com/D5192

Details

Provenance
epriestleyAuthored on
Reviewer
chad
Differential Revision
Restricted Differential Revision
Parents
rPcb2d0adf95f2: Fix exception in Maniphest task ID filtering
Branches
Unknown
Tags
Unknown
Tasks
T2632: MyISAM fulltext does not support non-latin languages and we don't warn you about it
Restricted Maniphest Task

Event Timeline