{"action":"opened","issue":{"url":"https://api.github.com/repos/julienschmidt/httprouter/issues/113","labels_url":"https://api.github.com/repos/julienschmidt/httprouter/issues/113/labels{/name}","comments_url":"https://api.github.com/repos/julienschmidt/httprouter/issues/113/comments","events_url":"https://api.github.com/repos/julienschmidt/httprouter/issues/113/events","html_url":"https://github.com/julienschmidt/httprouter/issues/113","id":117135653,"number":113,"title":"case insensitive path matching doesn't work for unicode paths","user":{"login":"rogpeppe","id":66491,"avatar_url":"https://avatars.githubusercontent.com/u/66491?v=3","gravatar_id":"","url":"https://api.github.com/users/rogpeppe","html_url":"https://github.com/rogpeppe","followers_url":"https://api.github.com/users/rogpeppe/followers","following_url":"https://api.github.com/users/rogpeppe/following{/other_user}","gists_url":"https://api.github.com/users/rogpeppe/gists{/gist_id}","starred_url":"https://api.github.com/users/rogpeppe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rogpeppe/subscriptions","organizations_url":"https://api.github.com/users/rogpeppe/orgs","repos_url":"https://api.github.com/users/rogpeppe/repos","events_url":"https://api.github.com/users/rogpeppe/events{/privacy}","received_events_url":"https://api.github.com/users/rogpeppe/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-16T14:28:49Z","updated_at":"2015-11-16T14:28:49Z","closed_at":null,"body":"To demonstrate, add a \t\"/Π\" entry to routes in TestTreeFind and\r\n\r\n    \t\t{\"/π\", \"/Π\", true, false},\r\n\r\nto the tests table.\r\n\r\nThe reason is because we findCaseInsensitivePath is assuming that it can use\r\nstrings.ToLower on a single byte to determine which node to descend into,\r\nbut this is not valid on unicode characters. The correct solution is probably\r\nto add a lower-cased node for all entries - then the usual lookup logic\r\ncould be used with the lower-cased lookup path."}}