でリテラル文字を使用して失敗しました。 XSDのパターンで表示されない任意の文字を削除するには、私は次のことをやっている(文字通り私のコードからコピーreplaceAll
コール):ストリップ文字私はXSD内のパターンに準拠した文字列を生成しようとしている特殊記号、アポストロフィ、アクセント、など
import java.lang.String;
public class HelloWorld {
public static void main(String[] args) {
test("Führ");
}
private static void test(String name) {
name = name.toUpperCase();
name = name.replaceAll (
"[^A-ZА-ЯΑ-ΩÄÀÁÂÃÅǍĄĂÆÇĆĈČĎĐÐÈÉÊËĚĘĜĢĞĤÌÍÎÏĴĶĹĻŁĽÑŃŇÖÒÓÔÕŐØŒŔŘẞŚŜŞŠȘŤŢÞȚÜÙÚÛŰŨŲŮŴÝŸŶŹŽŻ, '\\-–]",
""
);
System.out.println(name);
}
}
この断片は、正常に動作し、「FÜHR」を出力します。しかし、私はまったく同じreplaceAll
文で、上の実行している環境では、replaceAll
呼び出しがÜ
文字を削除し、データベースから来て、コードと同じ文字で始まるデータとFHR
(すなわち名前)出力しますスニペット( "Führ")。
私が原因である可能性がありますどのような...困惑だし、どのように私はこの問題を解決することができますか?
PS:ソースファイルのエンコーディングがUTF-8である(Eclipseの.settings:encoding//<<<src-path>>>.java=UTF-8
)
LC_ALL = Cを設定してみてください。 –
@WiktorStribiżewそれはUnixの設定に見えます...私はWindoze環境に相当するものを見つけようとします。 –
@WiktorStribiżew 'Locale.setDefault(Locale.ROOT);' ...を使用しないで試しました。 –