Java 区域设置E_PE未正确呈现数字

Java 区域设置E_PE未正确呈现数字,java,jvm,locale,Java,Jvm,Locale,指定环境语言环境应使用“.”表示十进制,使用“.”表示分组。但当我在Oracle JVM上运行此单元测试时,它失败了: public class TestLocale extends TestCase { public void test() { Locale locale = new Locale("es", "PE"); DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols

指定环境语言环境应使用“.”表示十进制,使用“.”表示分组。但当我在Oracle JVM上运行此单元测试时,它失败了:

public class TestLocale extends TestCase {

   public void test() {
       Locale locale = new Locale("es", "PE");
       DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(locale);

       assertEquals('.', decimalFormatSymbols.getDecimalSeparator());
       assertEquals(',', decimalFormatSymbols.getGroupingSeparator());

   }
}
据我们的支持人员报告,数字在was 8上也无法正确显示

知道如何在JVM级别解决这个问题吗?对于这种特殊情况,我需要在应用程序中处理区域设置管理代码吗?

更改

Locale locale = new Locale("es", "PE");

顺便说一句,PE来自秘鲁(我的家乡)。

Locale locale = new Locale("es", "PE");


顺便说一句,PE来自秘鲁(我的家乡)。

好吧,那是……出乎意料,但有点道理。谢谢:)(我也知道秘鲁,我自己来自委内瑞拉:它有我吃过的最好的食物之一)虽然它能产生预期的效果,但这是不正确的<代码>新区域设置(“es”、“PE”)是正确的方法。如果你用“es_PE”,你实际上是在说“西班牙变体PE在一个未定义的国家”。出于某种原因,Java使用“.”作为分组分隔符,使用“.”作为十进制分隔符,但对于秘鲁来说,它们似乎应该是相反的。我找不到任何东西来证实这一点,但我将假设这是Java的错误。好吧,这是……出乎意料,但有点道理。谢谢:)(我也知道秘鲁,我自己来自委内瑞拉:它有我吃过的最好的食物之一)虽然它能产生预期的效果,但这是不正确的<代码>新区域设置(“es”、“PE”)是正确的方法。如果你用“es_PE”,你实际上是在说“西班牙变体PE在一个未定义的国家”。出于某种原因,Java使用“.”作为分组分隔符,使用“.”作为十进制分隔符,但对于秘鲁来说,它们似乎应该是相反的。我找不到任何东西来证实这一点,但我假设这是Java的错误。