[PHP] Jak wymusić zapis do pliku z kodowniem utf-8, Funkcja fwrite zapisuje plik kodowany jako iso 8859-5 |
[PHP] Jak wymusić zapis do pliku z kodowniem utf-8, Funkcja fwrite zapisuje plik kodowany jako iso 8859-5 |
11.02.2024, 03:13:13
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 28.12.2007 Ostrzeżenie: (0%) |
Chcę napisać kod php zapisujący pliki kodowane jako utf-8.
Plik wynikowy jest plikiem tekstowym z kodami, które są przekokodowywane co czyni zapisany plik nieużytecznym. Symulator obwodów elektronicznych QSPICE ma pliki tekstowe z symbolami tranzystorów, a ja chciałem wygenerować automatycznie cały komplet plików symboli tranzystorów z katalogu nazw tranzystorów. https://www.qorvo.com/design-hub/design-too...eractive/qspice Wzorzec graficznego symbolu tranzystora jest zapisany jako $s. Wymiana nazw tranzystora na inny i zapis do pliku powinien dać nowy element jako symbol. Problem mam taki, że plik zapisywany pozornie wygląda na poprawny, lecz nie jest zakodowany jako kod w stronie kodowej Windows, a iso. QSPICE nie widzi tak stworzonego pliku. Jak wymusić w PHP, by plik zapisywany przez funkcję fwrite miał binarnie strone kodową UTF, a nie ISO? Kod <?php $s ='˙Ř˙Ű«symbol «type: QN» «description: NPN Bipolar Transistor» «library file: trany_BJ.lib» «shorted pins: false» «line (100,180) (-10,70) 0 0 0x1000000 -1 -1» «line (-10,-70) (100,-180) 0 0 0x1000000 -1 -1» «line (-20,0) (-100,0) 0 0 0x1000000 -1 -1» «line (100,-200) (100,-180) 0 0 0x1000000 -1 -1» «line (100,180) (100,200) 0 0 0x1000000 -1 -1» «rect (-20,100) (-10,-100) 0 0 0 0x1000000 0x1000000 -1 0 -1» «triangle (100,-180) (65,-125) (45,-145) 0 0 0x1000000 0x3000000 -1 -1» «text (200,200) 1 7 0 0x1000000 -1 -1 "Q"» «text (200,-200) 1 7 0 0x1000000 -1 -1 "KT940A"» «pin (100,200) (0,0) 1 0 0 0x0 -1 "C"» «pin (-100,0) (0,0) 1 0 0 0x0 -1 "B"» «pin (100,-200) (0,0) 1 0 0 0x0 -1 "E"» » '; $enc = mb_detect_encoding($s); $s = mb_convert_encoding($s, "UTF-8", $enc); $out = fopen("tranzystor.qsym", "w"); fwrite($out, $s); fclose($out); ?> Notepad++ plik powstały pokazuje pozornie jako właściwy. QSPICE nie widzi jednak tak zapisanego symbolu tranzystora. Symbol zapisany w QSPICE jest zakodowany w standardzie kodowania Windows. Zapisany przez PHP ma stronę kodową iso. UNIRED edytor pokazuje różnicę. Inne edytory kodu nie. |
|
|
Wersja Lo-Fi | Aktualny czas: 15.05.2024 - 04:32 |