Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] kodowanie
right6
post 23.04.2006, 19:48:39
Post #1





Grupa: Zablokowani
Postów: 206
Pomógł: 0
Dołączył: 9.03.2006

Ostrzeżenie: (0%)
-----


mam na stronie ustawione kodowanie na utf-8.
w bazie: System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)

jednakze po wyciagnieciu z bazy, na stronie pojawiaja sie krzaczki ... powinno byc ok a nie jest rolleyes.gif


--------------------
To ja invx sie nazywam ... przepraszam i dziekuje ...
Go to the top of the page
+Quote Post
Nightwalker
post 23.04.2006, 19:52:55
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


Jeżeli baza jest w utf-8 strona też musi być, inaczej będą krzaczki.


--------------------
Go to the top of the page
+Quote Post
siemakuba
post 23.04.2006, 21:00:19
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


dla mnie to zawsze byla czarna magia, co gdzi i jak ustawic, ale jedno wiem na pewno: kodowanie bazy/tabeli to jedno, a kodowanie polaczenia klienta z baza to drugie.

zaraz po mysql_connect() dodaj:
  1. <?php
  2.  
  3. mysql_query('SET CHARACTER SET UTF-8');
  4.  
  5. ?>


!uwaga - niekoniecznie bedzie to UTF-8, moze byc ze bedzie UTF8, a moze byc ze UTF8_polish_general_ci ... tego niestety nie pamietam, ale mysle ze jak poprobujesz to sie okaze :)
Go to the top of the page
+Quote Post
right6
post 24.04.2006, 17:25:02
Post #4





Grupa: Zablokowani
Postów: 206
Pomógł: 0
Dołączył: 9.03.2006

Ostrzeżenie: (0%)
-----


nie wiem co sie dzieje ...

na stornie mam:
Kod
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />


jednakze po zaladawoaniu na server, i otworzeniu stornu mam kodowanie ustawiana automatycznie na iso, w zrodle jest natomiast dalej URF-8

wuglada na to ze server sam jakos zmienia na iso srodkowo europejskie ...

w baza ma taki config

Kod
character set client     utf8    latin1
character set connection  latin2  latin1
character set database  latin1  latin1
character set results  utf8  latin1
character set server  latin1  latin1
character set system  utf8  utf8


a ja mam na stronie znaki zapytania przy telstach pobieranych z bazy ...


--------------------
To ja invx sie nazywam ... przepraszam i dziekuje ...
Go to the top of the page
+Quote Post
siemakuba
post 24.04.2006, 17:39:18
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


czy probowales zrobic tak jak pisalem wczesniej? przy moich problemach typu -
baza = latin2
strona = ISO-8859-2
dane z bazy = krzaki
zawsze to pomagało.

aha, jak ladujesz dane do bazy? export <-> import z phpmyadmina? jezeli tak to sprawdz jakie masz ustwienia kodowania dla importu i eksportu.

pozdr.
Go to the top of the page
+Quote Post
right6
post 24.04.2006, 19:24:22
Post #6





Grupa: Zablokowani
Postów: 206
Pomógł: 0
Dołączył: 9.03.2006

Ostrzeżenie: (0%)
-----


probowalem .. z dalej znaki "?"

a latin to nie jest czasem iso ?


--------------------
To ja invx sie nazywam ... przepraszam i dziekuje ...
Go to the top of the page
+Quote Post
strife
post 24.04.2006, 19:37:40
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Może te tematy Ci pomogą smile.gif
http://forum.php.pl/index.php?showtopic=38309
http://forum.php.pl/index.php?showtopic=35407
http://forum.php.pl/index.php?showtopic=35665
http://forum.php.pl/index.php?showtopic=32762


--------------------
Go to the top of the page
+Quote Post
siemakuba
post 24.04.2006, 21:23:02
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


tak, latin2 to jest ISO-8859-2, dalem to jako przykład, ze moj problem z kodowaniem w ISO rozwiazalem za pomoca podanego zpytania.

Skoro to jednak nie pomogło, stawiam na zle ustawienia phpmyadmina. Przejrzyj wątki które podał strife

pozdr.

Ten post edytował siemakuba 24.04.2006, 21:23:27
Go to the top of the page
+Quote Post
right6
post 28.04.2006, 20:06:16
Post #9





Grupa: Zablokowani
Postów: 206
Pomógł: 0
Dołączył: 9.03.2006

Ostrzeżenie: (0%)
-----


troche faktow sie zmienilo:

kodowanie na stronie ISO-8859-2

System porównań dla połączenia MySQL: utf8_general_ci

Metoda porównywania napisów dla tebali utf8_general_ci

Metoda porównywania napisów dla pól utf8_general_ci


po polaczeniu daje

mysql_query('SET names utf8');

mysql_query('SET character set utf8');

i mam krzaczki sad.gif(

"���şź��"


--------------------
To ja invx sie nazywam ... przepraszam i dziekuje ...
Go to the top of the page
+Quote Post
siemakuba
post 28.04.2006, 21:00:59
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


witaj i w tym watku :)

na poczatek, ISO-8859-2 != utf_general_ci. Odpowiednik ISO-8859-2 w kodowaniu MySQL to zdaje sie latin2.

czy pracujesz caly czas na danych ktore juz masz w bazie? Rob testy w ten sposob:

1. napisz sobie kod dodajcy cos do bazy (nie dodawaj przez phpmyadmina)
2. ustaw kodowanie w bazie na latin2 np., kodowanie na stronie na ISO-8859-2, po polaczeniu wykonaje mysql_query('SET CHARACTER SET latin2');
3. rozpocznij test -> dodaj przez skrypt nowy rekord, odczytaj go i sprawdz kodowanie.

Cytat
mysql_query('SET names utf8');
mysql_query('SET character set utf8');

o ile dobrze kojarze 'SET CHARACTER SET' jakby zawiera w sobie SET NAMES wiec chyba nie trzeba tego dublowac.

Cytat
���şź��

te krzaczki wygladaj jak nieporawni wyswietlany UTF-8, wiec moze wystarczy na stronie zmienic z ISO-8859-2 na UTF-8? sprawdz

pozdr.
Go to the top of the page
+Quote Post
the_foe
post 28.04.2006, 22:32:07
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.08.2003

Ostrzeżenie: (0%)
-----


Cytat(right6 @ 2006-04-28 20:06:16)
troche faktow sie zmienilo:

kodowanie na stronie ISO-8859-2

System porównań dla połączenia MySQL: utf8_general_ci

Metoda porównywania napisów dla tebali utf8_general_ci

Metoda porównywania napisów dla pól utf8_general_ci


po polaczeniu daje

mysql_query('SET names utf8');

mysql_query('SET character set utf8');

i mam krzaczki sad.gif(

"���şź��"



jezeli dane zrodlowe masz w latin2 (iso) nie mozesz uzyc "SET names" bo unifikuje to zrodlo polaczenie i cel.
zrob tak:
/*!40101 SET character_set_client = latin2 */;
/*!40101 SET character_set_connection = utf8 */;
/*!40101 SET character_set_results = latin2 */;

dla kolumn w utf8_polish_ci nie ma prawa nie zadzialac.


--------------------
..::tHe FoE::..
Go to the top of the page
+Quote Post
right6
post 29.04.2006, 18:34:26
Post #12





Grupa: Zablokowani
Postów: 206
Pomógł: 0
Dołączył: 9.03.2006

Ostrzeżenie: (0%)
-----


napisalem sobie skrypckik o jakim mowił siemakuba.

dodaje przez strone, i na stronie jest OK, w phpmyadminie tez.

jednak teraz chce zaimportować baze, wklejam SQL w phpmyadminie, i juz dodaje mi ze znakami questionmark.gif

aaevil.gif

probbowalem SQL zakodowac w ISO i w UTF8, caly czas to samo znaki questionmark.gif


--------------------
To ja invx sie nazywam ... przepraszam i dziekuje ...
Go to the top of the page
+Quote Post
siemakuba
post 29.04.2006, 22:59:55
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


skoro po dodawaniu przez skrypt kodowanie jest OK, znakiem to ze ustawienia juz powinny byc w porzadku :) teraz problem lezy pewnie w kodowaniu pliku jaki importujesz. Mozesz teraz zrobic 2 rzeczy:

1. pokombinowac z ustawieniem kodowania importowanego pliku w phpmyadminie (na samym dole pod inputem w ktorym ladujesz plik)

2. jak to nic nie da to sprobowac przekonwertowac plik ktory importujesz. Program Gżegżółka powinien dać rade.

pozdr.
Go to the top of the page
+Quote Post
right6
post 30.04.2006, 09:24:01
Post #14





Grupa: Zablokowani
Postów: 206
Pomógł: 0
Dołączył: 9.03.2006

Ostrzeżenie: (0%)
-----


tylko jak dodaje nowy rekord, normalnie go wpisujac w phpmyadminie to tez mam znaki questionmark.gif?.


--------------------
To ja invx sie nazywam ... przepraszam i dziekuje ...
Go to the top of the page
+Quote Post
siemakuba
post 30.04.2006, 11:52:50
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Cytat
tylko jak dodaje nowy rekord, normalnie go wpisujac w phpmyadminie to tez mam znaki ???.

w phpmyadminie na glownej stronie masz ustawienie kodowania polaczenia czy jakos tak. Musisz zgrac te wszystkie kodowania ze soba i powinno smigac. (fakt, jest tego troche rozsypane w roznych miejscach) :)
Go to the top of the page
+Quote Post
mike
post 30.04.2006, 12:03:19
Post #16





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(sinq @ 2006-04-30 13:00:37)
a jak już będziesz w akcie desperacji to skorzystaj z urldecode() urlencode() winksmiley.jpg

A jaki to ma związek z tematem?
Czytaj może wątki, w ktorych piszesz tongue.gif
Go to the top of the page
+Quote Post
right6
post 4.05.2006, 20:35:18
Post #17





Grupa: Zablokowani
Postów: 206
Pomógł: 0
Dołączył: 9.03.2006

Ostrzeżenie: (0%)
-----


juz wiem czego sobie przedtem poradzic nie moglem. A w zasadzie dalej to nie dziala.

jak sobie napisalem skrytp php dodajacy do bazy jest wszystko OK.

jednak jak dodaje do bazy przez schutboca opartego o AJAX, kodowanie lezy !, po dodaniu i w bazie mam krzaczki i w schucie.

kodowanie j.w.

strona iso
baza utf8


--------------------
To ja invx sie nazywam ... przepraszam i dziekuje ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 09:36