﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking
1071	Klarna Funktion KITT_String::decode() problematisch bei UTF-8 Shops	Torsten Riemer	somebody	"Die Funktion KITT_String::decode() in ""/includes/external/klarna/KITT/String.php"" wird teilweise so angewandt, dass von UTF-8 nach ISO-8859-15 konvertiert wird.

Funktion:

{{{
    /**
     * Decode the string to the platformEncoding
     *
     * @param string $str  string to decode
     * @param string $from from encoding
     * @param string $to   target encoding
     *
     * @return string
     */
    public static function decode($str, $from = null, $to = null)
    {
        if ($from === null) {
            $from = self::$klarnaEncoding;
        }
        if ($to === null) {
            $to = self::$platformEncoding;
        }
        return iconv($from, $to, $str);
    }
}}}

Vorkommen:
""/includes/external/klarna/class.KlarnaBase.php""

{{{
        return array(
            'id' => $this->code,
            'module' => KITT_String::decode($view->getTitle(), ""UTF-8"", ""ISO-8859-15""),
            'module_cost' => $view->getExtra(),
            'fields' => array(
                array(
                    'title' => $script.$css,
                    'field' => $view->show()
                )
            )
        );
}}}

""/includes/modules/order_total/ot_klarna_fee.php""

{{{
        $this->output[] = array(
            'title' => $this->title . ':',
            'text' => KITT_String::decode(
                $formatter->formatPrice(
                    $od_amount, KiTT::locale($this->_country)
                ),
                ""UTF-8"",
                ""ISO-8859-15""
            ),
            'value' => $od_amount
        );
}}}

Das sorgt dafür, dass in UTF-8 Shops das Eurozeichen bei der Klarna-Gebühr bei der Auswahl der Zahlarten als � angezeigt wird.

Wieso verwenden wir hier nicht einfach unsere Funktion decode_utf8(), die die Kodierung vorher überprüft?

Alternativ können wir die Funktion KITT_String::decode() auch mit dem Inhalt unserer Funktion ersetzen."	Bug/Fehler	closed	hoch	modified-shop-2.0.2.0	Shop	2.0.0.0	fixed				
