Autor | Zpráva | ||
---|---|---|---|
hal_sk Profil |
#1 · Zasláno: 30. 5. 2011, 00:02:14
Zdravím.
Mám jeden skript, v ktorom zapisujem obsah premennej "$str" do súboru "test.txt": $fname="test.txt"; $fo=fopen($fname,"w"); fwrite($fo,$str); Premenná "$str", ktorú zapisujem do súboru je vlastne string, ktorý je vypľutý inou predošlou funkciou (konkrétne sú to titulky, ktoré boli pôvodne v array ako hodnoty, ale funkcia ich previedla na string s príslušným formátovaním). V takom to prípade sa súbor uloží s kódovaním ANSI (nezávisle, či je v "$str" diakritika, alebo nie). A to nechcem, chcem aby sa súbor uložil s kódovaním UTF-8 v prípade, že sa v ňom nachádzajú špeciálne znaky. Nechápem prečo keď do premennej "$str" nastavím umelo hodnotu napr. "ábč", tak sa súbor uloží ako UTF-8, ale ak takú hodnotu vráti do tejto premennej moja funkcia, tak je súbor vždy ANSI. |
||
joe Profil |
#2 · Zasláno: 30. 5. 2011, 00:18:35
Zkus to takhle
fwrite($fo, utf8_encode($str)); |
||
hal_sk Profil |
#3 · Zasláno: 30. 5. 2011, 00:25:45
joe:
Teraz je súbor v UTF-8, ale diakritické znaky sú špatné. |
||
Alphard Profil |
#4 · Zasláno: 30. 5. 2011, 00:50:49
hal_sk:
Jak vypadá ta funkce, která vrací string v ANSI, je tam něco, co by mohlo dělat problémy. Kde se berou ty titulky? Ve FAQ je u mailu funkce autoUTF(), heuresti>cky odhaduje kódování a pomocí iconv() převádí na utf. Jestli jste si jistý, s jakým kódováním pracujete, tak to ignorujte, ale jinak se třeba bude hodit. |
||
hal_sk Profil |
#5 · Zasláno: 30. 5. 2011, 01:06:17
Alphard:
„Jak vypadá ta funkce, která vrací string v ANSI, je tam něco, co by mohlo dělat problémy. Kde se berou ty titulky?“ Aha, vstupný súbor s titulkami ktorý ide do funkcie na rozparsovanie a posunutie času je v ANSI (som si myslel že to musí byť v UTF-8, lebo je tam správne zobrazená diakritika). Teraz keď som tento súbor pre-uložil do UTF-8 a dal znova spracovať, vyplulo my to súbor v UTF-8 aj so správne zobrazenou diakritikou. Takže je to asi ok. Dík. Z týchto znakových sád som vždy magor. |
||
Časová prodleva: 13 let
|
0