[PHP] Problem z kodowaniem

Dział stworzony do rozmów o programowaniu i tworzeniu stron internetowych. Oprócz tematów związanych z SAIL'em.
Awatar użytkownika
Serpent
Soldier level 10
Soldier level 10
Estonia
Posty: 4169
Rejestracja: wt lip 07, 2009 9:13 pm
Lokalizacja: Polska - EuroStan ZSRE
Kontakt:

[PHP] Problem z kodowaniem

Post autor: 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.

Kod: Zaznacz cały

   $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
Posty: 30
Rejestracja: pn gru 29, 2014 8:52 pm

Re: [PHP] Problem z kodowaniem

Post autor: Chris01cz »

Nyce :armine2:
Awatar użytkownika
Nitek
Community Veteran
Community Veteran
Posty: 997
Rejestracja: pn kwie 13, 2009 4:13 pm
Lokalizacja: Białystok
Kontakt:

Re: [PHP] Problem z kodowaniem

Post autor: Nitek »

Spróbuj coś w ten sposób.

Kod: Zaznacz cały

$file = mb_convert_encoding($data, "UCS-2LE");
Nie znam PHP, ale po chwili szukania w internecie to wydaje się być najsensowniejszym rozwiązaniem.
Awatar użytkownika
Serpent
Soldier level 10
Soldier level 10
Estonia
Posty: 4169
Rejestracja: wt lip 07, 2009 9:13 pm
Lokalizacja: Polska - EuroStan ZSRE
Kontakt:

Re: [PHP] Problem z kodowaniem

Post autor: 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
ODPOWIEDZ