[PHP] Problem z kodowaniem

Dział stworzony do rozmów o programowaniu i tworzeniu stron internetowych. Oprócz tematów związanych z SAIL'em.
Post Reply
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

[PHP] Problem z kodowaniem

Post 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?
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Chris01cz
Soldier level 2
Soldier level 2
Posts: 30
Joined: Mon Dec 29, 2014 8:52 pm

Re: [PHP] Problem z kodowaniem

Post by Chris01cz »

Nyce :armine2:
User avatar
Nitek
Community Veteran
Community Veteran
Posts: 999
Joined: Mon Apr 13, 2009 4:13 pm
Location: Białystok
Contact:

Re: [PHP] Problem z kodowaniem

Post 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.
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: [PHP] Problem z kodowaniem

Post 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.
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Post Reply