Jump to content
php.lv forumi

No PHP 4 migrējot uz PHP 5 ir nobrukuši specsimboli


Recommended Posts

Posted

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?

Posted

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).

Posted

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?

Posted

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.

Posted

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?

Posted (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 by john.brown
Posted

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).

  • 5 weeks later...
Posted

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.

×
×
  • Create New...