Webフレームワーク:Javaのナメクジを生成するためのコード/ライブラリ(プリティURLで使用するため)
スラグ文字列は通常、文字だけa-z
、0-9
と-
、したがってずに書き込むことができるの含まURLエスケープ(だと思う「のfoo%の20BA r ")。
有効なUnicode文字列がスラッグ表現(a-z
,0-9
および-
)を返すJavaスラッグ関数を探しています。しかし、この実装は国際化とアクセント(>e
ë
)を処理しません
return input.toLowerCase().replaceAll("[^a-z0-9-]", "");
:
些細なスラグ機能は、の線に沿って何かだろう。これを回避する方法の1つは、すべての特別なケースを列挙することですが、それほどエレガントではありません。私はもっとよく考えられたものを探しています。
私の質問:
- Javaでジャンゴ/ Railsのタイプスラグを生成するための最も一般的/実用的な方法は何ですか?標準的な分解を使用して
有望に見えるが、正規化は、動作するように表示されません:「foobarには」代わりに期待「foobarに」の「FBR」に変換されます。なぜなのかご存知ですか? – knorv
奇妙な - 私は、文字列 '' f \ u00F3 \ u00F2b \ u00e2r ''をメソッドを通して渡すと '' foobar "'を得る。ソースファイルやデータファイルにエンコードエラーが発生している可能性があります。 http://illegalargumentexception.blogspot.com/2009/05/java-rough-guide-to-character-encoding.html – McDowell
を参照してください。McDowell:あなたは間違いなく、エンコードエラーです。優れた答えをありがとう! – knorv