Jump to content
php.lv forumi

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


Mr.SergE

Recommended Posts

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?

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 5 weeks later...

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.

Link to comment
Share on other sites

×
×
  • Create New...