[PHP] Problem z kodowaniem

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

[PHP] Problem z kodowaniem

Post por 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
Mensajes: 30
Registrado: Mon Dec 29, 2014 8:52 pm

Re: [PHP] Problem z kodowaniem

Post por Chris01cz »

Nyce :armine2:
User avatar
Nitek
Community Veteran
Community Veteran
Mensajes: 999
Registrado: Mon Apr 13, 2009 4:13 pm
Location: Białystok
Contactar:

Re: [PHP] Problem z kodowaniem

Post por 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
Mensajes: 4175
Registrado: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contactar:

Re: [PHP] Problem z kodowaniem

Post por 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
Responder