0

このコードは、開発環境では正常に機能しますが、本番環境では機能しません。

import java.text.Normalizer;
public class TestNorm {
        public static void main(String args[]) {
                String s = "";

                for (String s1: args) {
                        s = s + " " + s1;
                }

                System.out.println(Normalizer.normalize(s.toLowerCase(), Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "").replaceAll("[^\\p{Alnum}]+", "-").replaceAll("^[^a-z0-9]+", "").replaceAll("[^a-z0-9]+$", ""));
        }
}

(空欄)

DevEnv$ java TestNorm hellö 
> hello

(空欄)

ProdEnv$ java TestNorm hellö
> hell

私は何が欠けていますか?同じノーマライザーの結果が得られなかったのはなぜですか。"こんにちは"?

知っておくと便利な情報になるかもしれません

DevEnv$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

(空欄)

ProdEnv$ java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode, sharing)
4

1 に答える 1

0

さて、私は同じ問題を抱えているすべての人のための解決策を見つけました!

私はこのウェブサイトを調べました。 http://perlgeek.de/en/article/set-up-a-clean-utf8-environment

これを実行しました。

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

これでテストしました

perl -Mcharnames=:full -CS -wle 'print "\N{EURO SIGN}"'

出力は「€」である必要があります

上で書いたコードも機能します...

于 2012-12-02T16:44:58.397 に答える