DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 23. 09. 2008.   #1
Nemanja Avramović
emperor Selassie
Grand Master
 
Avatar Nemanja Avramović
 
Datum učlanjenja: 20.10.2006
Lokacija: Mladenovac
Poruke: 754
Hvala: 361
576 "Hvala" u 88 poruka
Nemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoro
Pošaljite ICQ poruku za Nemanja Avramović Pošaljite poruku preko MSN za Nemanja Avramović Pošaljite poruku preko Yahoo za Nemanja Avramović
Default UTF-8 pisanje u fajl

Imam neke podatke u bazi koje moram da eksportujem u fajl (ne u .sql već u custom format) i eksport radim php skriptom tako što izvučem podatke iz baze i onda ih sa fopen/fwrite/fclose upišem u fajl.

Međutim, kad tako upisujem stringove koji sadrže naša slova, u fajl se ne upisuju naša slova. Odnosno š se upiše, ali Č i Đ neće.

Probao sam nešto što sam našao na http://php.net/fwrite, tipa
PHP kôd:
fwrite($fh,utf8_encode($myString)); 
ili da dodam \xEF\xBB\xBF na početak unetog teksta, a \xEF\xBB\xBF je valjda Byte Order Mark, ali ništa od ovoga ne radi. A ionako bih više voleo da nemam BOM u fajlovima.

Je l' se neko ranije susretao sa ovim i da li možda zna rešenje za ovaj problem? Tražio sam po netu ali nisam našao ono što mi treba.
__________________
Moj portfolio sajtić | wat?
Nemanja Avramović je offline   Odgovorite uz citat
Staro 23. 09. 2008.   #2
Milos Vukotic
Knowledge base
Wrote a book
 
Avatar Milos Vukotic
 
Datum učlanjenja: 07.06.2005
Lokacija: Neđe ođe...
Poruke: 1.197
Hvala: 339
688 "Hvala" u 178 poruka
Milos Vukotic je pravi dragi kamenMilos Vukotic je pravi dragi kamenMilos Vukotic je pravi dragi kamenMilos Vukotic je pravi dragi kamenMilos Vukotic je pravi dragi kamenMilos Vukotic je pravi dragi kamenMilos Vukotic je pravi dragi kamen
Default

Jesi li provjerio sami string koji upisuješ?
Probaj
die(mb_detect_encoding($myString));
prije nego ga upišeš u fajl, možda je greška u njemu...
__________________
Чак Норис може да си ги врзе врвките на чевлите со стапалата.
Milos Vukotic je offline   Odgovorite uz citat
Staro 23. 09. 2008.   #3
f13o
novi član
Na probnom radu
 
Avatar f13o
 
Datum učlanjenja: 14.08.2008
Lokacija: Beograd
Poruke: 24
Hvala: 4
3 "Hvala" u 3 poruka
f13o is on a distinguished road
Pošaljite poruku preko MSN za f13o
Default

Можда сам погрешно разумео, али ако ти је стринг већ у Utf-8 када прочиташ из базе, мислим да нема потребе да га поново кодираш у Utf-8...
f13o je offline   Odgovorite uz citat
Staro 23. 09. 2008.   #4
Nemanja Avramović
emperor Selassie
Grand Master
 
Avatar Nemanja Avramović
 
Datum učlanjenja: 20.10.2006
Lokacija: Mladenovac
Poruke: 754
Hvala: 361
576 "Hvala" u 88 poruka
Nemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoro
Pošaljite ICQ poruku za Nemanja Avramović Pošaljite poruku preko MSN za Nemanja Avramović Pošaljite poruku preko Yahoo za Nemanja Avramović
Default

mb_detect_encoding vraća false

mada je string u bazi upisan u polju utf8_general_ci i sve lepo radi kad ispisujem to na stranici etc...

izmena: f13o, pisali smo u isto vreme... kao što rekoh, probao sam bez ikakvog enkodovanja, samo fopen/fwrite/fclose, ali opet ne dobijam utf-8 u fajlu
__________________
Moj portfolio sajtić | wat?

Poslednja izmena od Nemanja Avramović : 23. 09. 2008. u 20:16.
Nemanja Avramović je offline   Odgovorite uz citat
Staro 23. 09. 2008.   #5
mangia
Pukovnik u penziji
Grand Master
 
Datum učlanjenja: 11.10.2006
Lokacija: Banjaluka, BiH
Poruke: 941
Hvala: 209
585 "Hvala" u 137 poruka
mangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoro
Pošaljite poruku preko MSN za mangia Pošaljite poruku preko Skype™ za mangia
Default

Imao sam slicnu situaciju ali samo na prvi pogled. Kada snimim fajl na disk i otvorim ga notepad-om recimo sve bude ok...

Nikakav enkoding ne landaram... sirovo iz baze ide direkt u fajl...
__________________
mangiaphoto | BLOGERAJBLOG | ServerAdminBlog
mangia je offline   Odgovorite uz citat
Staro 23. 09. 2008.   #6
f13o
novi član
Na probnom radu
 
Avatar f13o
 
Datum učlanjenja: 14.08.2008
Lokacija: Beograd
Poruke: 24
Hvala: 4
3 "Hvala" u 3 poruka
f13o is on a distinguished road
Pošaljite poruku preko MSN za f13o
Thumbs up

Не будем лењ, па направим тест мали....

база: utf8, utf8_general_ci
најједноставнија, два поља (id, field - varchar)

код: test.php
PHP kôd:
<?php

echo "test:\n";

$conn mysql_connect('192.168.33.201','test','pasvord');

if (!
$conn) {
    echo 
"Unable to connect to DB: " mysql_error();
    exit;
}
       
if (!
mysql_select_db('test')) {
    echo 
"Unable to select mydbname: " mysql_error();
    exit;
}

mysql_set_charset('utf8',$conn);

// file
$file fopen('test.txt','w+');
$res mysql_query('select * from test1',$conn);

while (
$row mysql_fetch_assoc($res))
{
  echo 
$row['field'] . "\n";
  
fwrite($file$row['field']);
}

?>
Ово ми даје ћирилицу и на конзолу, и у браузер и у фајл test.txt. Све то на линуксу (мада ни Windows не би семо да даје друге резултате).

Надам се да помаже...
f13o je offline   Odgovorite uz citat
"Hvala" f13o za poruku:
Staro 23. 09. 2008.   #7
Nemanja Avramović
emperor Selassie
Grand Master
 
Avatar Nemanja Avramović
 
Datum učlanjenja: 20.10.2006
Lokacija: Mladenovac
Poruke: 754
Hvala: 361
576 "Hvala" u 88 poruka
Nemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoro
Pošaljite ICQ poruku za Nemanja Avramović Pošaljite poruku preko MSN za Nemanja Avramović Pošaljite poruku preko Yahoo za Nemanja Avramović
Default

Znači, ne verujem... zaboravio sam da odradim:

PHP kôd:
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'"); 
Ja nemam funkciju mysql_set_charset() jer imam PHP 5.2.0, ali u svakom slučaju, kad sam je video kod tebe u kodu setio sam se ovoga. Hvala, sad radi.

A samo pre sat-dva sam isto ovo dodavao na jednom drugom mestu (drugi fajl) u istom projektu jer nije htelo da mi ispisuje naša slova (doduše nisam pisao u fajl).
__________________
Moj portfolio sajtić | wat?
Nemanja Avramović je offline   Odgovorite uz citat
Staro 24. 09. 2008.   #8
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

ne moras sve tri komande, SET NAMES ti odradi sve osim SET COLLATION_CONNECTION (ali ako je tabela u utf8 to je vec podeseno za tabelu valjda?), a SET CHARACTER SET ti uradi sve sto i SET NAMES plus i collation, pa je on sam po sebi dovoljan.
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
"Hvala" ivanhoe za poruku:
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
App za pisanje dokumentacije dinke Web aplikacije, web servisi i software 6 03. 12. 2010. 22:42
Pisanje mysql query bluesman SQL baze podataka - Sponzor: Baze-Podataka.net 30 05. 06. 2007. 13:53


Vreme je GMT +2. Trenutno vreme je 14:58.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.