forked from extern/egroupware
* Setup: fix failed/partial restores for charsets not utf-8
caused by NULL converted to "" (empty string)
This commit is contained in:
parent
75fa8f4d05
commit
605e49579f
@ -851,10 +851,14 @@ class Translation
|
|||||||
* @param string|boolean $from charset $data is in or False if it should be detected
|
* @param string|boolean $from charset $data is in or False if it should be detected
|
||||||
* @param string|boolean $to charset to convert to or False for the system-charset the converted string
|
* @param string|boolean $to charset to convert to or False for the system-charset the converted string
|
||||||
* @param boolean $check_to_from =true internal to bypass all charset replacements
|
* @param boolean $check_to_from =true internal to bypass all charset replacements
|
||||||
* @return string|array converted string(s) from $data
|
* @return NULL|string|array converted string(s) from $data
|
||||||
*/
|
*/
|
||||||
static function convert($data,$from=False,$to=False,$check_to_from=true)
|
static function convert($data,$from=False,$to=False,$check_to_from=true)
|
||||||
{
|
{
|
||||||
|
if (empty($data))
|
||||||
|
{
|
||||||
|
return $data; // no need for any charset conversation (NULL, '', 0, '0', array())
|
||||||
|
}
|
||||||
if ($check_to_from)
|
if ($check_to_from)
|
||||||
{
|
{
|
||||||
if ($from) $from = strtolower($from);
|
if ($from) $from = strtolower($from);
|
||||||
@ -925,7 +929,8 @@ class Translation
|
|||||||
{
|
{
|
||||||
foreach($data as $key => $str)
|
foreach($data as $key => $str)
|
||||||
{
|
{
|
||||||
$ret[$key] = self::convert($str,$from,$to,false); // false = bypass the above checks, as they are already done
|
$ret[$key] = empty($str) ? $str : // do NOT convert null to '' (other empty values need no conversation too)
|
||||||
|
self::convert($str,$from,$to,false); // false = bypass the above checks, as they are already done
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user