Gun: encoding ie / mozilla

Beitrag lesen

Das konkrete Problem ist: Der "input" läuft in beiden Fällen anscheinend korrekt in eine konvertierende Javaklasse/-Methode. "input" ist hier schlicht ein String-Parameter, der auch im Mozilla-Fall scheinbar korrekt ankommt (kompletter Betrag inklusive Leerzeichen). Anhand der locale "fr" wird ein DecimalFormat durchgeführt und das abschliessend Number n = f.parse... liefert halt bei Tests mit Mozilla Firefox mit obigem Beispiel "24" statt "24177.97". Via Internet Explorer klappt's wie gesagt, und der String-Parameter, der in der Konvertierungsmethode ankommt, scheint identisch.

Sind nur ein paar Code-Zeilen:

public Object parse(String input) // "input" in beiden Fällen "24 177,97"
    {
        if ( input == null || input.length() == 0 )
        {
            return null;
        }
        Locale  locale = RequestProcessor.currentRequest().getLocale(); // in beiden Fällen "fr" mit leerem "country"
        DecimalFormatSymbols fs = new DecimalFormatSymbols(locale);
        DecimalFormat f = new DecimalFormat("#,##0.00", fs);
        ParsePosition pp = new ParsePosition(0);
        Number n = f.parse(input, pp);
        if ( n == null ) // ie = 24177.97, firefox = 24
        {
            return error("errors.parse1");
        }
        BigDecimal bd = new BigDecimal(n.toString());
       return bd;
    }

für mich absolut unverständlich, und im bugzilla bin ich noch nicht fündig geworden...