diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index a2d0e440d..5d0a18fd9 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -140,7 +140,7 @@ module BrowseHelper # Must break it up to correctly build the url value = $1 section = "#" + $2 - encoded_section = "#" + URI.encode($2.gsub(" ", "_")).gsub("%3A", ":").gsub("%", ".") + encoded_section = "#" + URI.encode($2.gsub(/ +/, "_"), /[^A-Za-z0-9:_]/).gsub("%", ".") else section = "" encoded_section = "" diff --git a/test/helpers/browse_helper_test.rb b/test/helpers/browse_helper_test.rb index c4f0e8c31..7878d10e0 100644 --- a/test/helpers/browse_helper_test.rb +++ b/test/helpers/browse_helper_test.rb @@ -196,6 +196,10 @@ class BrowseHelperTest < ActionView::TestCase assert_equal "http://de.wikipedia.org/wiki/de:Alte Brücke (Heidelberg)?uselang=en#Br.C3.BCckenaffe", link[:url] assert_equal "de:Alte Brücke (Heidelberg)#Brückenaffe", link[:title] + link = wikipedia_link("wikipedia", "de:Liste der Baudenkmäler in Eichstätt#Brückenstraße 1, Ehemaliges Bauernhaus") + assert_equal "http://de.wikipedia.org/wiki/de:Liste der Baudenkmäler in Eichstätt?uselang=en#Br.C3.BCckenstra.C3.9Fe_1.2C_Ehemaliges_Bauernhaus", link[:url] + assert_equal "de:Liste der Baudenkmäler in Eichstätt#Brückenstraße 1, Ehemaliges Bauernhaus", link[:title] + I18n.locale = "pt-BR" link = wikipedia_link("wikipedia", "zh-classical:Test#Section")