Web çerçeveler yerleşik destek okunabilir ve SEO dostu URL'ler oluşturmak için kullanılan "salyangozlar" için (güzel URL'lerin kullanılmak üzere) sümüklü böcek üretmek için kütüphane:Java kodu/böyle Raylar ve Django olarak
bir sümüklü böcek dize genellikle yalnızca karakterlerin a-z
, 0-9
ve -
ve dolayısıyla olmadan yazılabilir ait içeren URL kaçan (düşünmek "foo% 20ba r ").
Bir sümüklü böcek temsilini (a-z
, 0-9
ve -
) dönecektir herhangi geçerli Unicode dizesi verilen bir Java sülük fonksiyonu arıyorum.
return input.toLowerCase().replaceAll("[^a-z0-9-]", "");
Ancak bu uygulama işlemek olmaz uluslararası ve aksan (>e
ë
):
Önemsiz bir sülük fonksiyonu çizgisinde bir şey olurdu. Bunun bir yolu tüm özel durumları sıralamak olurdu, ama bu çok zarif olmazdı. Daha iyi düşünülmüş ve genel bir şey arıyorum.
Sorum:
- Java Django/Raylar tipi salyangozlar üretmek için en genel/pratik yolu nedir? Kurallı bir oluşuma kullanarak
umut verici görünüyor, ama normalleşme çalışmak görünmüyor: "filanca" "yüzenler" yerine beklenen "filanca" tercüme alır. Neden biliyor musun? – knorv
Garip - "f \ u00F3 \ u00F2b \ u00e2r" dizesini yöntemle koyduğumda, "foobar" sözcüğünü alıyorum. Kaynak veya veri dosyanızda bir kodlama hatası oluşturuyor olabilirsiniz; bkz http://illegalargumentexception.blogspot.com/2009/05/java-rough-guide-to-character-encoding.html – McDowell
McDowell: Kesinlikle haklısınız - bir kodlama hatasıydı. Mükemmel bir cevap için teşekkürler! – knorv