diff --git a/framework/yii/debug/LogTarget.php b/framework/yii/debug/LogTarget.php
index b415b50..31bca6e 100644
--- a/framework/yii/debug/LogTarget.php
+++ b/framework/yii/debug/LogTarget.php
@@ -45,11 +45,11 @@ class LogTarget extends Target
 		if (!is_dir($path)) {
 			mkdir($path);
 		}
-		$indexFile = "$path/index.json";
+		$indexFile = "$path/index.php";
 		if (!is_file($indexFile)) {
 			$manifest = array();
 		} else {
-			$manifest = json_decode(file_get_contents($indexFile), true);
+			$manifest = unserialize(file_get_contents($indexFile));
 		}
 		$request = Yii::$app->getRequest();
 		$manifest[$this->tag] = $summary = array(
@@ -62,14 +62,14 @@ class LogTarget extends Target
 		);
 		$this->gc($manifest);
 
-		$dataFile = "$path/{$this->tag}.json";
+		$dataFile = "$path/{$this->tag}.php";
 		$data = array();
 		foreach ($this->module->panels as $id => $panel) {
 			$data[$id] = $panel->save();
 		}
 		$data['summary'] = $summary;
-		file_put_contents($dataFile, json_encode($data));
-		file_put_contents($indexFile, json_encode($manifest));
+		file_put_contents($dataFile, serialize($data));
+		file_put_contents($indexFile, serialize($manifest));
 	}
 
 	/**
@@ -93,7 +93,7 @@ class LogTarget extends Target
 		if (count($manifest) > $this->module->historySize + 10) {
 			$n = count($manifest) - $this->module->historySize;
 			foreach (array_keys($manifest) as $tag) {
-				$file = $this->module->dataPath . "/$tag.json";
+				$file = $this->module->dataPath . "/$tag.php";
 				@unlink($file);
 				unset($manifest[$tag]);
 				if (--$n <= 0) {
diff --git a/framework/yii/debug/controllers/DefaultController.php b/framework/yii/debug/controllers/DefaultController.php
index dd01412..2026dc7 100644
--- a/framework/yii/debug/controllers/DefaultController.php
+++ b/framework/yii/debug/controllers/DefaultController.php
@@ -74,9 +74,9 @@ class DefaultController extends Controller
 	protected function getManifest()
 	{
 		if ($this->_manifest === null) {
-			$indexFile = $this->module->dataPath . '/index.json';
+			$indexFile = $this->module->dataPath . '/index.php';
 			if (is_file($indexFile)) {
-				$this->_manifest = array_reverse(json_decode(file_get_contents($indexFile), true), true);
+				$this->_manifest = array_reverse(unserialize(file_get_contents($indexFile)), true);
 			} else {
 				$this->_manifest = array();
 			}
@@ -88,8 +88,8 @@ class DefaultController extends Controller
 	{
 		$manifest = $this->getManifest();
 		if (isset($manifest[$tag])) {
-			$dataFile = $this->module->dataPath . "/$tag.json";
-			$data = json_decode(file_get_contents($dataFile), true);
+			$dataFile = $this->module->dataPath . "/$tag.php";
+			$data = unserialize(file_get_contents($dataFile));
 			foreach ($this->module->panels as $id => $panel) {
 				if (isset($data[$id])) {
 					$panel->tag = $tag;
diff --git a/framework/yii/debug/panels/RequestPanel.php b/framework/yii/debug/panels/RequestPanel.php
index 6aa4bf8..58256e4 100644
--- a/framework/yii/debug/panels/RequestPanel.php
+++ b/framework/yii/debug/panels/RequestPanel.php
@@ -151,7 +151,7 @@ EOD;
 		}
 		$rows = array();
 		foreach ($values as $name => $value) {
-			$rows[] = '<tr><th style="width: 200px;">' . Html::encode($name) . '</th><td>' . Html::encode(var_export($value, true)) . '</td></tr>';
+			$rows[] = '<tr><th style="width: 200px;">' . Html::encode($name) . '</th><td>' . htmlspecialchars(var_export($value, true), ENT_QUOTES|ENT_SUBSTITUTE, \Yii::$app->charset, TRUE) . '</td></tr>';
 		}
 		$rows = implode("\n", $rows);
 		return <<<EOD