[ Dulex85 @ 15.09.2008. 22:36 ] @
Napravio sam jedan sajt, koji kod mene na localhost-u radio super, i kad sam ga upload-ovao na jos jedan besplatni server radio je lepo. ali problemje nastao kad sam ga konacno okacio na server na koji je trebao da bude...

Problem je u tome sto se tekstu ne prikazuju naša slova (š,đ,ž....), sve stranice imaju meta tag.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Kao Content managment sistem koristim cutenews skriptu.
Isti problem se javlja i sa forumom koji je takodje lepo radio...., pojavljuju se na sve strane ?? cak i izmedju brojeva, sto ne bih rekao da je problem u enkodingu.

P.S. Sajt je upload-ovan na univerzitetskom serveru, a i njihov sjt ima slicnih problema, pa me zanima da li je mozda problem u serveru, I kako moze da se resi!?
Hvala!...
[ agvozden @ 16.09.2008. 08:42 ] @
<?php
header( 'Content-Type: text/html; charset=utf-8');
?>
[ Nikola Poša @ 16.09.2008. 09:59 ] @
Imao sam slichan problem sa mojim sajtom, tachnije, sve tekstove koje sam dovlachio iz baze, a koji su sadrzhali č, š, ž, itd, ta ista slova su zamenjivana sa znakom '?'. Problem sam reshio tako shto sam na mestu konekcije sa bazom, odmah posle linije koda za konektovanje slao upit bazi: SET NAMES UTF8. Npr. ovako:
Code:

$konekcija = new mysqli('localhost', 'username', 'password', 'baza'); 
$konekcija->query('SET NAMES UTF8');

[ Nemanja Avramović @ 16.09.2008. 10:04 ] @
Već sam pisao o tome u PHP FAQ temi:

Da li mogu da se koriste naša slova (utf-8) u MySQL bazi?
[ Dulex85 @ 16.09.2008. 11:32 ] @
Skripta koju koristim kao CMS koristi tekstualni fajl kao bazu.....
A na forumu se pojavljuju ? i tamo gde nema teksta vec i izmenju slika i brojeva....
[ agvozden @ 17.09.2008. 08:50 ] @
Provuci te fajlove kroz dreamveawer i oznaci: page encoding utf-8
[ Dulex85 @ 17.09.2008. 13:08 ] @
Ma jok ne pomaze...

E sad ,tek sto mi nije nista jasno :(

Kad sam na mom kompu u httpd.config postavio AddDefaultCharset UTF-8 sve je pocelo da brljavi kao i sajt koji se nalazi na fakultetskom serveru
E sad ja sam mislio da je u tome problem pa smo probali da tamo to promenimo, ali bilo koja promena i (AddDefaultCharset UTF-8, AddDefaultCharset off, AddDefaultCharset Windows-1250, pa cak i brisanje cele linije) nije urodilo plodom

Jednostavno se ne desavaju nikakve promene

Sta tu moze da bude..........?

P.S
Stim sto se AddDefaultCharset- na serveru fakulteta ne nalazi u httpd.config vec u tao nekom drugom (config.mime-tako nesto), verovatno sto je moj za win, a taj za linux, tako nekako.....
[ Dulex85 @ 18.09.2008. 13:56 ] @
REŠEN PROBLEM! :)

For a je bila u tome sto je u php.ini fajlu bilo definisano “default_charset UTF-8”
Izbacio sam tu komandu (komentarisao je ;) i sve je proradilo kako treba, tako da ako neko ima sličnih problema nek pogleda php.ini fajl u PHP-u.

Hvala svima na pomoći!!!
[ brusjr @ 20.09.2008. 17:18 ] @
Ako može i meni pomoć.

da li postoji način pomoću php-a ili mysql-a da se izvuku podaci iz baze u
utf-8 encodingu, a koji su upisani u bazu u win-1250 encodingu.
[ Nikola Poša @ 20.09.2008. 17:49 ] @
Kad "dovuchesh" taj tekst iz baze npr. u neku promenljuvu $tekst, konverziju posle odradish ovako:
Code:

$tekst = mb_convert_encoding($tekst, "UTF-8", "win-1250");
[ brusjr @ 20.09.2008. 18:36 ] @
Pokušao sam navedeno napraviti, ali mi javlja grešku :
Illegal character encoding specified in....
slova sa kvačicama su izbačena, niti se ne prikazuju. Pokušao sam promijeniti ovako:
Code:
$Rec_OPIS = mb_convert_encoding($Rec_OPIS, "UTF-8", "latin2");

i s time sam dobio neka slova, neka ne (č radi, ž ne radi) i ne javlja se greška.

hm, što sad stavit umjesto latin2, latin1 ne pomaže.

[ Nikola Poša @ 20.09.2008. 18:46 ] @
Taj poslednji parametar je opcioni, tako da tu ne morash da napishesh nishta. Ako ni to ne pomogne onda ipak probaj da mu prosledish i taj treci parametar, ali neka to bude ovako neshto:
Code:

$tekst = mb_convert_encoding($tekst, "UTF-8", "JIS, eucjp-win, sjis-win");

Ako ni to ne pomogne, probaj ovako:
Code:

$tekst = mb_convert_encoding($tekst, "UTF-8", "auto");

A ako ni to ne uspe, smislicemo josh neshto... :)
[ Nikola Poša @ 20.09.2008. 18:50 ] @
btw Sad mi pade napamet, probaj josh i ovo:
Code:

$tekst = mb_convert_encoding($tekst, "UTF-8", "ISO-8859-2");

Chini mi se da je upravo ISO-8859-2 najslichniji tom win-1250 encoding-u, pa mozhda uspe...
[ brusjr @ 20.09.2008. 19:26 ] @
Probao sam sve navedeno, ali ništa ne pomaže, iso-8859-2 radi za č, ž ne radi :(

Možda sam krivo lokalizirao problem, možda je problem u nečem drugom. Evo o čemu se radi.
Stranica je napravljena da se koristi UTF-8 encoding, a unutar te stranice se trebaju prikazati podaci iz druge baze. Kada se prikažu podaci iz druge stranice pojavljuju se čudni znakovi koji se vide normalno jedino ako se u firefoxu promijeni encoding u win-1250, ali onda ostali dio stranice ne vredi. Pretpostavljam da su podaci u drugoj bazi u win-1250 encodingu.
Preko phpmyadmina kad pogledam tu drugu bazu, onda mi piše da su podaci koje povlačim u latin1_swedish_ci (collation).

Sada više ne znam da li su podaci win-1250 ili latin1_swedish_ci, ali da ih pretvorim u utf-8 neće pa neće :(

Pretpostavljam da su podaci upisani u tablicu u win-1250 encodingu, Collation na tablici je latin1_swedish_ci.
Definitivno više ne znam što je pravo a što krivo.
[ Nikola Poša @ 20.09.2008. 20:21 ] @
Ne znam, probaj josh neshto i sa ovim funkcijama:
Code:

$tekst = iconv("ISO-8859-2", "UTF-8", $tekst);
//ili 
$tekst = iconv("windows-1250", "UTF-8", $tekst);

$tekst = utf8_encode($tekst);

A probaj opet i onu prvu f-ju (mb_convert_encoding), ali joj kao treci parametar prosledi "windows-1250"...

Takodje, probaj i u phpMyAdmin-u da promenish encoding te baze:
Code:

ALTER DATABASE baza DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
[ brusjr @ 20.09.2008. 20:53 ] @
E ovako, kao prvo hvala na pomoći, proradilo je.
E sad kako, pa krenimo redom.

1. mb_convert_encoding nažalost ne radi sa slovima encodinga win-1250, ali zato radi sa ISO-8859-2.
iconv radi sa win-1250 slovima, pa sam probao direktno iz win-1250 u utf-8 pa nije radilo, ali zato radi iz win-1250 u ISO-8859-2.

2. Znači,
--> najprije iz win-1250 u ISO-8859-2 pomoću iconv
--> potom iz ISO-8859-2 u utf-8 pomoću mb_convert_encoding

Code:

$tempout = iconv("windows-1250", "ISO-8859-2", $zapis);
$zapis = mb_convert_encoding($tempout, "UTF-8", "ISO-8859-2");
[ Nikola Poša @ 20.09.2008. 21:22 ] @
Eto, super si se snashao...

Pozdrav!