Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

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

Idź do strony 1, 2  Następny

 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> PHP
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
ikons
Gość





PostWysłany: 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 :/
Powrót do góry
Ktoso



Dołączył: 05 Paź 2005
Posty: 962
Skąd: Akwarium

PostWysłany: Nie Maj 06, 2007 10:34 pm      Temat postu: Odpowiedz z cytatem Pisownia

Jak kodowana jest strona php, z której to zapisujesz do bazy danych?

(ISO-8859-2 to zazwyczaj dobry wybór)

_________________
Life is Study - Kintaro Oe (Golden Boy)
Project13 - The Soul of a Coder - (Portfolio)
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
ikons
Gość





PostWysłany: 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 zarówno na stronie na której zapisuj? i na tej na której odczytuj? - zreszt? liczy si? tylko zapis bo tak jak mówi? po zapisie w bazie ju? nie tak jak potrzeba.. :/

próbowa?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? :/
Powrót do góry
Garf



Dołączył: 25 Maj 2005
Posty: 3607
Skąd: Rzeszów

PostWysłany: 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 ogóle 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
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
ikons
Gość





PostWysłany: 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 mój 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?owów te? probowalem:

Kod:
mysql_query("SET NAMES latin2");
Powrót do góry
Ktoso



Dołączył: 05 Paź 2005
Posty: 962
Skąd: Akwarium

PostWysłany: 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 mój, 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)
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
ikons
Gość





PostWysłany: 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 który wspó?pracuje z bazami danych jaki pisz? - i mam proszk? za du?o wiedzy teoretycznej a za ma?o praktyki :/
Powrót do góry
Garf



Dołączył: 25 Maj 2005
Posty: 3607
Skąd: Rzeszów

PostWysłany: 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? Próbowa?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
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
ikons
Gość





PostWysłany: 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? próbowa?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 :)
Powrót do góry
Garf



Dołączył: 25 Maj 2005
Posty: 3607
Skąd: Rzeszów

PostWysłany: 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 pomóc. 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
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> PHP Wszystkie czasy w strefie CET (Europa)
Idź do strony 1, 2  Następny
Strona 1 z 2

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




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

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