Skip to content

Commit 6f503a7

Browse files
committed
[yaml] Convert encofing only for strings
1 parent b5a9fa5 commit 6f503a7

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

lib/yaml/sfYaml.php

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,29 @@ public static function dump($array, $inline = 2)
141141
*
142142
* @param array $result Original result
143143
* @param string $encoding The expected encoding
144-
* @param array $convertedResult Converted result
145144
* @return array
146145
*/
147-
protected static function arrayConvertEncoding(array $result, $encoding, &$convertedResult = array())
146+
protected static function arrayConvertEncoding(array $result, $encoding)
148147
{
148+
$convertedResult = array();
149149
foreach ($result as $key => $value)
150150
{
151-
$key = mb_convert_encoding($key, 'UTF-8', $encoding);
152-
$convertedResult[$key] = is_array($value) ? self::arrayConvertEncoding($value, $encoding, $convertedArray) : mb_convert_encoding($value, $encoding, 'UTF-8');
151+
if (is_string($key))
152+
{
153+
$key = mb_convert_encoding($key, $encoding, 'UTF-8');
154+
}
155+
if (is_array($value))
156+
{
157+
$convertedResult[$key] = self::arrayConvertEncoding($value, $encoding);
158+
}
159+
else if (is_string($value))
160+
{
161+
$convertedResult[$key] = mb_convert_encoding($value, $encoding, 'UTF-8');
162+
}
163+
else
164+
{
165+
$convertedResult[$key] = $value;
166+
}
153167
}
154168

155169
return $convertedResult;

0 commit comments

Comments
 (0)