Revision 97e60d52
Von Moritz Bunkus vor mehr als 14 Jahren hinzugefügt
SL/Form.pm | ||
---|---|---|
203 | 203 |
if (any { ref $param eq $_ } qw(Form HASH)) { |
204 | 204 |
foreach my $key (keys %{ $param }) { |
205 | 205 |
if (!ref $param->{$key}) { |
206 |
$param->{$key} = $iconv->convert($param->{$key}); |
|
206 |
# Workaround for a bug: converting $param->{$key} directly |
|
207 |
# leads to 'undef'. I don't know why. Converting a copy works, |
|
208 |
# though. |
|
209 |
$param->{$key} = $iconv->convert("" . $param->{$key}); |
|
207 | 210 |
} else { |
208 | 211 |
_recode_recursively($iconv, $param->{$key}); |
209 | 212 |
} |
... | ... | |
212 | 215 |
} elsif (ref $param eq 'ARRAY') { |
213 | 216 |
foreach my $idx (0 .. scalar(@{ $param }) - 1) { |
214 | 217 |
if (!ref $param->[$idx]) { |
215 |
$param->[$idx] = $iconv->convert($param->[$idx]); |
|
218 |
# Workaround for a bug: converting $param->[$idx] directly |
|
219 |
# leads to 'undef'. I don't know why. Converting a copy works, |
|
220 |
# though. |
|
221 |
$param->[$idx] = $iconv->convert("" . $param->[$idx]); |
|
216 | 222 |
} else { |
217 | 223 |
_recode_recursively($iconv, $param->[$idx]); |
218 | 224 |
} |
Auch abrufbar als: Unified diff
Iconv-Problem behoben
Soll der Inhalt von $form mit Iconv von UTF-8 nach ISO-8859-15
konvertiert werden (z.B. weil der GET-Parameter INPUT_ENCODING auf
UTF-8 gesetzt und $dbcharset = 'ISO-8859-15' ist), so gibt
$iconv->convert($form->{key}) immer undef zurück. Ich weiß nicht
warum.
Übergibt man $iconv->convert() hingegen eine Kopie eines solchen
Wertes aus $form, so wird das erwartete Ergebnis erzeugt.