Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

[php/mysql] polskie znaki przy zapisie do bazy danych

Id do strony 1, 2  Nastpny

 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> PHP
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
ikons
Go





PostWysany: Nie Maj 06, 2007 8:49 pm  OP    Temat postu: [php/mysql] polskie znaki przy zapisie do bazy danych Odpowiedz z cytatem Pisownia

heh..
pisz? panel administracyjny i napotka?em sie na nielada problem gdy zapisuj? informacje do bazy za pomoc? php zmienia mi si? kodowanie :/
wycina polskie znaki (np ? zamienia si? na ?)
nie wiem jakie to kodowanie bo nigdy nic o tym nie czyta?em i jako? mnie nie ci?gnie do tego - czas tez nie pozwala za bardzo...

gdy robi? to za pomoc? konsoli jest wszystko ok w bazie s? polskie znaki natomiast je?li zapisuj? co? za pomoc? phpca to w bazie odrazu pojawia si? sieczka :/
Powrt do gry
Ktoso



Doczy: 05 Pa 2005
Posty: 962
Skd: Akwarium

PostWysany: Nie Maj 06, 2007 10:34 pm      Temat postu: Odpowiedz z cytatem Pisownia

Jak kodowana jest strona php, z ktrej to zapisujesz do bazy danych?

(ISO-8859-2 to zazwyczaj dobry wybr)

_________________
Life is Study - Kintaro Oe (Golden Boy)
Project13 - The Soul of a Coder - (Portfolio)
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora
ikons
Go





PostWysany: Nie Maj 06, 2007 10:52 pm      Temat postu: Odpowiedz z cytatem Pisownia

naturalnie iso
Kod:
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">



wiem ?e utf i php si? nie lubi? :)

iso jest zarwno na stronie na ktrej zapisuj? i na tej na ktrej odczytuj? - zreszt? liczy si? tylko zapis bo tak jak mwi? po zapisie w bazie ju? nie tak jak potrzeba.. :/

prbowa?em takiego myczka:

Kod:
$db_result = mysql_query("ALTER TABLE p1 MODIFY title CHAR(160) CHARACTER SET latin2;");  


p1 to tabela
title to kolumna - tak wyczyta?em w dokumentacji - niby nie zwraca b??du ale nie wiem czy to jest poprawnie :/

ju? mi brakuje pomys?w co z tym zrobi? :/
Powrt do gry
Garf



Doczy: 25 Maj 2005
Posty: 3607
Skd: Rzeszw

PostWysany: Nie Maj 06, 2007 10:57 pm      Temat postu: Odpowiedz z cytatem Pisownia

Php i UTF jak najbardziej si? lubi?. A co do zmiany kodowania, to sprawd? sobie funkcj? mysql_client_encoding, bo tutaj w?a?nie PHP i MySQL lubi? si? pogry??.

Rozwi?zania s? takie: albo w konfiguracji bazy danych albo po ka?dym po??czeniu wykona? polecenie:
Cytat:
SET NAMES latin2
. PHP skonwertuje w locie co trzeba (o ile w ogle trzeba).
_________________
Internet nadal „nic nie rozumie”, ?adnego odkrycia, cho?by od niego zale?a? los ?wiata,
ale nadanego w egzotycznym j?zyku, nie odr?ni od nieco mniej wa?nej wie?ci,
?e u ciotki w placku z jab?kami zrobi? si? w piekarniku zakalec.
Stanis?aw Lem
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
ikons
Go





PostWysany: Nie Maj 06, 2007 11:25 pm      Temat postu: Odpowiedz z cytatem Pisownia

znaczy chodzi mi o to ?e PHP jest totalnym ingorantem jesli chodzi o UTF8 Po prostu tam jeden znak to jeden bajt i koniec. (bynajmniej tyle sie zkursu dowiedzia?em :D

a teraz do rzeczy:
mia?e? racje mia?em latin1
ale naral nie wiem jak to zmieni? :/
na mj ch?opski rozum tak:

Kod:
$db_connect_id = @mysql_connect($db_host, $db_user , $db_pass);
mysql_query("SET NAMES 'latin2'");
$charset = mysql_client_encoding($db_connect_id);


ale to nie dzia?a :/

ps.
bez cudzys?oww te? probowalem:

Kod:
mysql_query("SET NAMES latin2");
Powrt do gry
Ktoso



Doczy: 05 Pa 2005
Posty: 962
Skd: Akwarium

PostWysany: Pon Maj 07, 2007 1:13 am      Temat postu: Odpowiedz z cytatem Pisownia

Garf jak zwykle dobrze prawi ;-)

Z swojej strony mog? odes?a? tutaj: http://www.coderscity.net/ftopic9578.html gdzie mj, podobny problem rozwi?zano.

Oraz poradzi? analogicznie do tego co u mnie zadzia?a?o:
Kod:
mysql_query("SET NAMES `latin2`");

Zauwa? ?e te apostrofy przy latin2 to nie te ' (pod ") tylko ` (pod ~), oby to pomog?o :-)

_________________
Life is Study - Kintaro Oe (Golden Boy)
Project13 - The Soul of a Coder - (Portfolio)
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora
ikons
Go





PostWysany: Pon Maj 07, 2007 6:51 am      Temat postu: Odpowiedz z cytatem Pisownia

heh niestety nie pomog?o - przeinstaluje baz? - zobaczymy co b?dzie martwi mnie tylko fakt ze nie wiem na jaki serwer to trafi milo by by?o gdyby php zawsze robi? co trzeba.

PS. nie wiem gdzie ja mam g?ow? nie dalej jak 2 dni temu czyta?em w?a?nie ?eby u?ywa? ` a nie ' - to pierwszy skrypt w php ktry wsp?pracuje z bazami danych jaki pisz? - i mam proszk? za du?o wiedzy teoretycznej a za ma?o praktyki :/
Powrt do gry
Garf



Doczy: 25 Maj 2005
Posty: 3607
Skd: Rzeszw

PostWysany: Pon Maj 07, 2007 8:00 am      Temat postu: Odpowiedz z cytatem Pisownia

ikons napisa:
znaczy chodzi mi o to ?e PHP jest totalnym ingorantem jesli chodzi o UTF8 Po prostu tam jeden znak to jeden bajt i koniec. (bynajmniej tyle sie zkursu dowiedzia?em :D

To kiepski ten kurs ;)

Co do bazy danych - masz mo?liwo?? pogrzebania w konfiguracji? Prbowa?e? zapisa? jakie? dane po wywo?aniu SET names?

_________________
Internet nadal „nic nie rozumie”, ?adnego odkrycia, cho?by od niego zale?a? los ?wiata,
ale nadanego w egzotycznym j?zyku, nie odr?ni od nieco mniej wa?nej wie?ci,
?e u ciotki w placku z jab?kami zrobi? si? w piekarniku zakalec.
Stanis?aw Lem
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
ikons
Go





PostWysany: Pon Maj 07, 2007 9:07 am      Temat postu: Odpowiedz z cytatem Pisownia

tak mam mo?liwo?? - baza jest postawiona na localhost (webserv)

kolejno?? dzia?a? jest taka:
??cz? si? z baz?

nast?pnie:
Kod:
mysql_query("SET NAMES `latin2`");
   $charset = mysql_client_encoding($db_connect_id);
//utf'a tez ju? prbowa?em i co bym nie wstawi? ca?y czas moje $charset = "latin1" :/:/



potem tworze tabele
a nast?pnie dodaje do nich przyk?adowe texty

- tyle ma robi? ten instalator :)
Powrt do gry
Garf



Doczy: 25 Maj 2005
Posty: 3607
Skd: Rzeszw

PostWysany: Pon Maj 07, 2007 10:01 am      Temat postu: Odpowiedz z cytatem Pisownia

W sekcji mysqld pliku /etc/mysql/my.cnf dopisujesz:
Cytat:
init-connect='SET NAMES latin2'


Powinno pomc. Pyta?em, czy po wywo?aniu tego polecenia i zapisie danych tak?e wstawia krzaczki.[/i]

_________________
Internet nadal „nic nie rozumie”, ?adnego odkrycia, cho?by od niego zale?a? los ?wiata,
ale nadanego w egzotycznym j?zyku, nie odr?ni od nieco mniej wa?nej wie?ci,
?e u ciotki w placku z jab?kami zrobi? si? w piekarniku zakalec.
Stanis?aw Lem
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> PHP Wszystkie czasy w strefie CET (Europa)
Id do strony 1, 2  Nastpny
Strona 1 z 2

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.22374 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |