1
0
mirror of https://github.com/maximebf/php-debugbar.git synced 2025-01-17 21:38:14 +01:00

Force convert to UTF-8

Not sure if this is the best/most efficient method and haven't really check the impact, but what do you think about this?
I keep running into edge cases when dealing with debugging non-utf8 data, this would make sure that all strings are utf8, or converted to utf-8 (with non-utf8 characters replaced)
Otherwise json_encode will throw an exception..
This commit is contained in:
Barry vd. Heuvel 2014-06-16 14:49:51 +02:00
parent e2029f13ea
commit a30466d0f8

View File

@ -214,6 +214,13 @@ class DebugBar implements ArrayAccess
foreach ($this->collectors as $name => $collector) { foreach ($this->collectors as $name => $collector) {
$this->data[$name] = $collector->collect(); $this->data[$name] = $collector->collect();
} }
// Remove all invalid (non UTF-8) characters
array_walk_recursive($this->data, function(&$item){
if (is_string($item) && !mb_check_encoding($item, 'UTF-8')) {
$item = mb_convert_encoding($item, 'UTF-8', 'UTF-8');
}
});
if ($this->storage !== null) { if ($this->storage !== null) {
$this->storage->save($this->getCurrentRequestId(), $this->data); $this->storage->save($this->getCurrentRequestId(), $this->data);