Mr.SergE Posted March 10, 2006 Report Posted March 10, 2006 Problēma sekojoša: uz viena un tā paša servera PHP4 viss strādā kā nākās: print "Šalc zaļās priedes mežmalā"; drukājās normāli, bet tiklīdz es to pašu mēģinu uz PHP5, man visu latviešu simbolu vietā ir jautājuma zīmes. Vai ir kādas idejas, ko man tur vajag darīt, lai tā nebūtu?
bubu Posted March 10, 2006 Report Posted March 10, 2006 php versijai ar to nav nekāda sakara. Vaina ir faila kodējuma (charset) nesakrišanā ar outputā norādīto (Content-Type http headeris html tagā vai http headeros).
Mr.SergE Posted March 10, 2006 Author Report Posted March 10, 2006 Tad kā lai izskaidro sekojošo. Faila saturs: <?php header('Content-Type: text/html; charset=utf-8'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="lv" lang="lv"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Blah blah</title> </head> <body> <? print "<p>Šalc zaļās priedes mežmalā</p>"; ?> </body> </html> Ja es saglabāju kā fails.php, tad man viņu parsē kā PHP5 un tad man drukājās jautājuma zīmes. Ja tas pats fails ir nosaukts fails.php4 (tiek parsēts kā PHP4), tad viss ir kārtībā - drukā kā normālu latviešu tekstu. Kur tad ir problēma?
bubu Posted March 10, 2006 Report Posted March 10, 2006 Fails ir ieseivots utf8 formātā? un tam sākumā nav maģiskie 3 signature baiti? Ja ir, tad tie nojauc header sūtīšanu varbūt.. Un tad sūtās apachē norādītais defaultais.. bet nu nez. Kautkas tev tur nav īsti lab, bet ar php versijām tam toč nav nekāds sakars.
Mr.SergE Posted March 10, 2006 Author Report Posted March 10, 2006 Ar UTF8 viss ir kārtībā. Tā trakā signature sākumā arī nav. Viss aprobežojās tieši iekš tā, ka nevar saprast, kas notiek ar php5. Nu goda vārds, es arī neko nevaru saprast. Varbūt kādam ir vismaz kāda nojausma, kurā virzienā rakt?
john.brown Posted March 11, 2006 Report Posted March 11, 2006 (edited) iekš php.ini ir šitāds: default_charset = "iso-8859-1". Varbūt ka tur tā vaina. Man viņš php5 ir aizkomentēts, un ar utf-8 viss ir ok. Jā, tiko atkomentēju, ar utf trabli sākās :) Edited March 11, 2006 by john.brown
bubu Posted March 11, 2006 Report Posted March 11, 2006 hm.. john.brown - bet viņš jau header("Content-Type:...) ar vajadzīgo charsetu nosūta no php skripta! Tāpēc default_charset vajadzētu ignorēties, ja vien tiešām tas headeris nosūtās (nav pirms tam nekas cits nosūtīts).
john.brown Posted March 11, 2006 Report Posted March 11, 2006 Man arī tiek nosūtīts header un apacham ir uzlikts utf-8 defaulta, bet atkomentējot to default-charset sākas joki :)
AndzX8-842 Posted April 11, 2006 Report Posted April 11, 2006 Man arī bija tieši tāds pats joks. Apache bija uzlikts noklusētais charset uz ISO-...kāds nu tur ir tas noklusētais. Vietā tika ierakstīts UTF-8 un tad viss rādijās kā nākas, arī domāju, ka bija gan fails pareizi saglabāts UTF-8 kodējumā, headeros viss norādīts, beigās noklusētais charset bija pie vainas. Tev tā kaste ar PHP5 ir win vai *unix? Man tādi joki uz mājas win kastes bija.
Recommended Posts