sieci ram takich jak Rails i Django ma wbudowane wsparcie dla „ślimaki”, które są wykorzystywane do generowania czytelnych i SEO przyjaznych adresów URL:kod Java/biblioteki do generowania ślimaki (do zastosowania w ładnych adresów URL)
ciąg ślimak zazwyczaj zawiera tylko znaki a-z
, 0-9
i -
i stąd mogą być pisane bez ucieczki URL (myślę „foo% 20ba r ").
Poszukuję funkcji wtyczki Java, która podając dowolny poprawny ciąg znaków Unicode zwróci reprezentację wtyczki (a-z
, 0-9
i -
).
Trywialny funkcja ślimak byłoby coś wzdłuż linii:
return input.toLowerCase().replaceAll("[^a-z0-9-]", "");
Jednak ta realizacja nie będzie obsługiwać umiędzynarodowienie i akcenty (ë
>e
). Jednym ze sposobów byłoby wyliczenie wszystkich specjalnych przypadków, ale nie byłoby to zbyt eleganckie. Szukam czegoś bardziej przemyślanego i ogólnego.
Moje pytanie:
- Co jest najbardziej ogólnym/praktyczny sposób, aby wygenerować ślimaki typu Django/Rails w Java?
wygląda obiecująco, ale normalizacja nie wydaje się działać: „foobar” zostanie przetłumaczone na „FBR” zamiast oczekiwanego „foobar”. Wiesz dlaczego? – knorv
Dziwne - kiedy wstawiam ciąg '' f \ u00F3 \ u00F2b \ u00e2r "' za pomocą metody, otrzymuję '" foobar "'. Być może popełniłeś błąd kodowania w źródle lub pliku danych; zobacz http://illegalargumentexception.blogspot.com/2009/05/java-rough-guide-to-character-encoding.html – McDowell
McDowell: Masz całkowitą rację - był to błąd kodowania. Dzięki za doskonałą odpowiedź! – knorv