Page MenuHomePhabricator

Make Phabricator support non-Latin Diffusion URI and non-Latin filenames
Needs ReviewPublic

Authored by huangsj on Jan 2 2017, 1:35 AM.
Tags
None
Referenced Files
F19030478: D17128.id.diff
Nov 24 2025, 9:09 PM
F19030179: D17128.id.diff
Nov 24 2025, 8:20 PM
F19022443: D17128.diff
Nov 23 2025, 9:42 PM
F18803177: D17128.diff
Oct 17 2025, 9:58 PM
F18759134: D17128.id.diff
Oct 6 2025, 2:01 AM
F18733444: D17128.id.diff
Sep 30 2025, 10:34 PM
F18711851: D17128.diff
Sep 29 2025, 4:59 AM
F18624637: D17128.id.diff
Sep 15 2025, 8:39 PM
Subscribers
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

Phabricator lacks support for non-latin repository URIs and non-latin filenames

When I create a new repository named 测试代码库1,the URI displayed in Details -> Clone is "ssh://myphabricator.com/diffusion/1/.git" while the expected one should be
"ssh://myphabricator.com/diffusion/1/测试代码库.git"

The incorrect URI is displayed becuase DiffusionRepositoryController.php uses csprintf('%R' to get displayURI and csprintf('%R' stripped all non-latin characters.

Also, as T11626: Phabricator should properly display non-English characters such as Chinese in diffusion commit page indicates, "读我文件.md" is displayed as "\350\257\273\346\210\221\346\226\207\344\273\266.md".

I find out that the cause of T11626: Phabricator should properly display non-English characters such as Chinese in diffusion commit page is lack of " -c core.quotepath=false " when running git command.
By default core.quotepath is true and git will convert "读我文件.md" to "\350\257\273\346\210\221\346\226\207\344\273\266.md"。

Test Plan

All non-latin characters are displayed properly without quote-escape and being stripped.

Diff Detail

Repository
rP Phabricator
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Removing %R is dangerous.

Adding configuration flags to git is almost certainly not the best approach here.

I agree that I should not add 'core.quotepath=false' to git command.
If I do not want to quote path, I can configure this flag in my Linux installation instead.

And yes, I find out that I do not need to remove %R to make Phabricator support displaying non ascii Diffusion URIs