sendResponse problém s kódováním

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Marsme
Člen | 75
+
0
-

Zkouším napsat obsluhu v komponentě pro image upload z wysiwyg editoru. Zpracuju file udělám s ním co potřebuji ale potřebuji ještě vrátit response s json objektem který si wysiwyg obslouží. Firebug ale hlásí tuto chybu s kódováním:

Kódování znaků dokumentu v prostém textu nebylo definováno. Pokud dokument obsahuje znaky mimo rozsah US-ASCII, může se při určitých nastavení prohlížeče zobrazovat se zkomoleným textem. Kódování znaků souboru je potřeba definovat na úrovni přenosového protokolu, nebo určit signaturu kódování pomocí značky pořadí bajtů (BOM).

Kód pro obsluhu image uploadu je zde:

<?php

public function handleRedactorImageUpload()
	{
		//get file from http
		$htr = $this->getHttpRequest();

		//prepare path
		$path = WWW_DIR . DIRECTORY_SEPARATOR . "project" . DIRECTORY_SEPARATOR . "redactor" . DIRECTORY_SEPARATOR;

		foreach ($htr->getFiles() as $file) {

				if ($file->isImage()) {
					$pathinfo = pathinfo($file->getName());
					$ext = $pathinfo['extension'];
					$fileName = Strings::random(20, "0-9a-z") . "." . $ext;
					$file->move($path . $fileName);
				}
			}

		$json = array("filelink" => $path . $fileName;);
		$response = new \Nette\Application\Responses\JsonResponse($json,"application/json");
		\Nette\Diagnostics\Debugger::fireLog($response);
		$this->presenter->sendResponse($response);
	}
?>

Kde by mohl být problém?

Hafran
Člen | 121
+
0
-

Zdar, vyřešil si to nějak? Mi to teď taky začalo psát a i když to nevypadá že je to nějaká chyba, ale spíš výmysl Firefoxu, tak se bojím aby mi to někdy neshodilo JS.

Marsme
Člen | 75
+
0
-

Je to tak jak píšeš. Nenašel jsem v tom žádný problém ale jenom problém firefoxu. Hrál jsem si s tím skoro celý den. Momentálně mi to běží 14 dní na produkci a bez problémů.

Jan Tvrdík
Nette guru | 2595
+
0
-

@Hafran: Zkus použít content type "application/json; charset=utf-8".