java规范化器在不同的机器上表现不同

java规范化器在不同的机器上表现不同,java,string,multilingual,Java,String,Multilingual,这段代码在开发环境中可以很好地工作,但在生产环境中却不能 import java.text.Normalizer; public class TestNorm { public static void main(String args[]) { String s = ""; for (String s1: args) { s = s + " " + s1;

这段代码在开发环境中可以很好地工作,但在生产环境中却不能

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 -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)
(空白)


好吧,我为所有有同样问题的人找到了解决办法

我查看了这个网站;

执行此命令

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}"'
产出应为“€”


我上面写的代码也能工作…

@DanielFischer最有可能。仍然不知道如何修复或修复什么
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)
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}"'