Page 1 of 1

[PHP] Problem z kodowaniem

Posted: Fri Apr 22, 2016 11:32 am
by Serpent
Jo, od jakiegoś czasu pracuję nad pewnym narzędziem związanym z OW. Mam jednak problem z zapisem tekstu, a konkretnie problem z kodowaniem. Wygenerowany plik do pobrania powinien mieć format UCS-2LE (z którego korzysta OW) jednak jest on zapisywany w UTF-8.

Code: Select all

   $filename = $_GET['filename'];
   $data = $_GET['data'];   
	
	
	$data = mb_convert_encoding($data, "UCS-2LE"); // próbowałem też z funkcją iconv("UTF-8", "UCS-2LE", $data);
	
	$file = fopen($filename, "w");
	fwrite($file, "\xFF\xFE".$data); // próbowałem z dodaniem BOM'a ale nie pomogło
	fclose($file);	
	
	header("Content-Type: application/wri");
	header("Content-Transfer-Encoding: binary");
	header("Content-Disposition: attachment; filename=" .$filename); 
	header("Pragma: no-cache"); 
	 
	readfile($filename);
	unlink($filename);
Efekt jest taki że pobrany plik ma format UTF-8, a tekst to zbiór krzaczków (zgaduje że to zasługa funkcji konwertującej na UCS-2LE). Wie ktoś może jak narzucić kodowanie dla pliku aby ten nie był zapisywany w UTF-8?

Re: [PHP] Problem z kodowaniem

Posted: Fri Apr 22, 2016 2:31 pm
by Chris01cz
Nyce :armine2:

Re: [PHP] Problem z kodowaniem

Posted: Fri Apr 22, 2016 10:16 pm
by Nitek
Spróbuj coś w ten sposób.

Code: Select all

$file = mb_convert_encoding($data, "UCS-2LE");
Nie znam PHP, ale po chwili szukania w internecie to wydaje się być najsensowniejszym rozwiązaniem.

Re: [PHP] Problem z kodowaniem

Posted: Fri Apr 22, 2016 11:43 pm
by Serpent
Dobra udało mi się rozwiązać ten problem. We właściwościach pliku trzeba było wyłączyć BOM'a... Do zamknięcia.