[ pakito @ 31.08.2013. 08:12 ] @
Kao da sam upao u Zonu Sumraka:
http://www.paundurlic.com/vlaski.recnik/index.php
Dve godine mi je aplikacija radila besprekorno u pogledu prikaza UTF-8 karaktera.
Već nekoliko nedelja nisam menjao ništa u php kodu.
A onda, pre nekoliko dana: šok!
Yu karakteri su se pogubili, kao i svi oni koji su pripadali setu UTF-8.
Srećom, prikaz iz MySQL baze ostao je ispravan!

Citiram kod iz PHP fajlova koji su ključni za prikaz UTF-8 karaktera:

langsettings.php
Code:
<?php
        $lang=@file_get_contents("lang.tmp");
        @include("lang/languages.php");
        @include("lang/$lang.php"); //ukljucuje odgovarajuci php fajl
?>


languages.php
Code:
<?
$languages['sr']="Srpski";
$languages['vl']="Rumîńaşće";
$languages['rom']="Româneşte";
?>


lang.php
Code:
<?
    $fp=fopen("lang.tmp","w");
    fwrite($fp,basename($_SERVER['QUERY_STRING']));
    fclose($fp);
    header("Location: index.php");
?>


sr.php
Code:
<?
//
$TEXT['recnik-head'] = "VLAŠKI REČNIK";
//
?>



index.php
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Vlaski recnik - Vorbariu ruminesk</title>
<link href="stil.css" rel="stylesheet" type="text/css">
</head>
<? 
include("langsettings.php");
?>
<body topmargin="20" leftmargin="50">

<div align="left">
    <table border="0" width="780" heigh="50" cellspacing="1" cellpadding="0" height="10">
    <tr>
        <td    valign="bottom" align="left"><b>
        <font size="5" face="Verdana" color="#800000"><?=$TEXT['recnik-head']?></font></b>
        </td>
    </tr>
...
</div>
...
</html>


PTIKAZ:
VLA?SKI RE?NIK


Code:
<tr>
<span lang="SL" style="font-family: Verdana; color: #808000">
<font size="2">AĻAŹE ĻIMBA</font></span>
</tr>


PRIKAZ:
A?A?E ?IMBA

Poseban je problem što određene karaktere, koji se ispravno vide u MySQL, aplikacija ne prepoznaje, što blokira važne finkcije u korišćenju materijala obrađenog tokom protekle dve godine, kao na primer znak '∞'.
Iako nisam ništa menjao u kodu, nanovo sam proverio sve fajlove: svi su (i dalje) u UTF-8.

Napominjem da SVE OSTALO na mom sajtu radi besprekorno, na prvom mestu Forum, koji je takođe UTF-8 PHP-MySQL aplikacija!
http://www.paundurlic.com/forum.vlasi.srbije/index.php

Molim za mišljenje šta može biti uzrok ovoj neobičnoj pojavi, koja preti da mi obesmisli dvogodišnji gotovo danonoćni rad?!





[Ovu poruku je menjao Gojko Vujovic dana 02.09.2013. u 09:39 GMT+1]
[ ivan.a @ 31.08.2013. 11:22 ] @
Na brzinu sam pročitao i pogledao sajt.
U headeru imaš sledeće:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
a odmah ispod:
<meta http-equiv="Content-Type" content="text/html; charset=windows-utf-8">

Fajl encoding nije sačuvan kao UTF-8 without BOM.
Proveri EOL Conversation (verovatno treba biti Windows format).
Imaš previše nepravilnih i decprecated HTML elemenata.
[ pakito @ 31.08.2013. 12:29 ] @
@Fajl encoding nije sačuvan kao UTF-8 without BOM.

Bili ste potpuno u pravu: fajlovi su bili kodirani u UTF-8, a ne u UTF-8 without BOM!
Uradio sam to, i kao što se može videti, sve je došlo na svoje mesto.

http://www.paundurlic.com/vlaski.recnik/index.php

Nameće se sada suštinsko pitanje:
Kako je to sve do sada dobro funkcionisalo, a onda odjednom prestalo?


[ ivan.a @ 31.08.2013. 12:42 ] @
Citat:
Nameće se sada suštinsko pitanje:
Kako je to sve do sada dobro funkcionisalo, a onda odjednom prestalo?

Generalno, to sad nije ni bitno jer je teško odgovoriti na tako nešto. Verovatno je u pitanju tvoj hosting koji je radio migraciju (ili backup ili ko zna šta drugo) zbog oslobađanja prostora na određenom serveru/disku (ili iz nekih drugih razloga), te su kopirali sadržaj sa jednog servera na drugi. Meni se ovo dešavalo kod određenih hosting-a, pa mi veliki broj fajlova izgubi format ili se EOL Conversation promeni u UNIX. Mada možda je u pitanju i tvoja greška (prilikom online izmene fajla).

Inače, nemaš definisan <!DOCTYPE, zatim imaš 2 head bloka. Ovo su trivijalne greške i trebaš ih ispraviti.

Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Vlaski recnik - Vorbariu ruminesk</title>
<link href="stil.css" rel="stylesheet" type="text/css">
</head>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Vlaski recnik - Vorbariu ruminesk</title>
</head>


Treba biti:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
            "http://www.w3.org/TR/html4/loose.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Vlaski recnik - Vorbariu ruminesk</title>
<link href="stil.css" rel="stylesheet" type="text/css">
</head>