Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kodowanie znak zapytania zamiast krzaków
exaybachay
post 8.10.2009, 11:48:45
Post #1





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

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


Witam.
Mam taką sytuację. Mam komputer, na którym mam zainstalowanego debiana.
Na tym komputerze tworzyłem stronę i wszystko było ok.
Przeniosłem stronę na serwer i zaistniały problemy z kodowaniem.

Pobieram dane z bazy danych mssql w obu przypadkach z tej samej.
Na własnym komputerze przy odczytywaniu zmieniam kodowanie na utf, przy zapisie na windows 1250.
Przeniesiona na serwer strona nie widzi polskich znaków pobranych z bazy.
Na komputerze były to krzaki (taki znak zapytania, ale z tłem itd.) i przy konwersji wszystko było ok.
Na serwerze zamiast polskich znaków jest zawsze jeden znak zapytania, a nie krzaki.

Sądzę, że problem leży gdzieś po stronie konfiguracji serwera.
Może ktoś wie co zrobić żebym widział krzaki.

Pozdrawiam
Go to the top of the page
+Quote Post
enemyofarcha
post 8.10.2009, 12:39:49
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.06.2009

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


Sprawdź kodowanie rekordów w bazie danych.. W razie czego użyj UTF-8, lub latin2_general_ci.

EDIT: Albo też możesz ustawić kodowanie na całą bazę danych...

Ten post edytował enemyofarcha 8.10.2009, 12:41:59


--------------------
Fotografia
Fiona - Cały świat mojego psa
Go to the top of the page
+Quote Post
exaybachay
post 8.10.2009, 17:09:42
Post #3





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

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


Witam.
Zmiana musi nastąpić po stronie konfiguracji serwera www, a nie bazy danych.
Baza danych się nie zmieniła, strona też nie.
Zmiana dotyczy przeniesienia strony na inny serwer gdzie też jest ta sama wersja linuxa,
tylko z najpotrzebniejszymi pakietami i może czegoś brakować, albo być źle skonfigurowane.
Więc może ktoś ma pomysł co trzeba doinstalować/skonfigurować żebym zamiast znaku zapytania
miał krzaki.

Pozdrawiam.
Go to the top of the page
+Quote Post
Dumdas
post 9.10.2009, 14:31:57
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


  1. mysql_query('SET NAMES latin2');

Wstaw to zaraz po wybraniu bazy danych. Ustawi do dobrze stronę kodową i polskie znaki będą poprawnie czytane.
Możesz to przestawić też na każde inne kodowanie dostępne w MYSQL (np. utf8 czy ascii).
Go to the top of the page
+Quote Post
exaybachay
post 10.10.2009, 17:36:49
Post #5





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

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


Po pierwsze nie chcę nic zmieniać na bazie bo nie w tym jest problem.
Problem polega, że mam 2 takie same systemy z tym, że na jednym jest poinstalowane
więcej pakietów, a drugi jest typowo serwerowym czyli ma minimum pakietów i któregoś brakuje.
System to Debian.
A baza stoi na windzie i to MSSQL i nie mogę zmian dokonywać na tej bazie.
Problem polega na braku jakiegoś pakietu w systemie, albo jego nie odpowiedniej konfiguracji.
Myślałem, że zapytam i ktoś mi pomoże od ręki, dlatego zapytałem, bo prędzej czy później
znajdę rozwiązanie, ale chodzi o to, że potrzebuję tego rozwiązania na wczoraj.

Pozdrawiam.
Go to the top of the page
+Quote Post
damyrade1990
post 10.10.2009, 22:54:54
Post #6





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 10.10.2009

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


Wszędzie kodowania musisz mieć takie same dotyczy to także colleteów tabel baz danych


--------------------
[zmoderowane by nospor]
Go to the top of the page
+Quote Post
Dumdas
post 11.10.2009, 09:58:09
Post #7





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


A próbowałeś to, co Ci napisałem?
To niczego w bazie nie zmieni, źle się wyraziłem. To odpowiednio ustawi połączenie.
Go to the top of the page
+Quote Post
exaybachay
post 12.10.2009, 10:31:56
Post #8





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

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


Hey.
Nie chcę w ten sposób rozwiązać tego problemu, tylko chcę dojść gdzie leży jego przyczyna w konfiguracji.

Pozdrawiam.
Go to the top of the page
+Quote Post
Dumdas
post 12.10.2009, 17:24:22
Post #9





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


W takim razie - kodowanie bazy danych jest nie takie (powinien być dla polskiego któryś "podgatunek" latin2 tongue.gif). Jak zmienisz teraz, to Ci się pojawią krzaczki w bazie danych chyba, więc przed eksperymentowaniem ew. zalecam zrzut bazy winksmiley.jpg
Go to the top of the page
+Quote Post
exaybachay
post 13.10.2009, 07:52:58
Post #10





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

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


Witam.
Chyba źle się zrozumieliśmy.
Mam dwa takie same systemy na dwóch różnych komputerach. Na jednym strona działa, połączenie z bazą danych jest prawidłowe, wszystko wyświetla się tak jak powinno.
Na drugim z kolei czegoś brakuje i po pobraniu danych z bazy, nie rozpoznaje znaków prawidłowo.
Więc kodowanie bazy jest prawidłowe skoro na jednym działa, więc da się zrobić to samo na drugim.
Z tym, że na drugim jest minimalna ilość zainstalowanych pakietów i w tym może być problem.
Systemy to debian.

Pozdrawiam.
Go to the top of the page
+Quote Post
-=Peter=-
post 13.10.2009, 08:10:27
Post #11





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


@Dumdas - kolega, który założył temat ma bazę danych mssql, a nie mysql - czytaj uważnie winksmiley.jpg. Set names działa tylko w mysql (być może też innych silnikach, ale napewno nie na mssql).


--------------------
Go to the top of the page
+Quote Post
cojack
post 13.10.2009, 08:38:10
Post #12





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


http://forum.php.pl/index.php?s=&showt...st&p=514237

@edit
używajcie dalej mssql to nie będziecie mieć problemów...

Ten post edytował cojack 13.10.2009, 22:42:49


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
exaybachay
post 13.10.2009, 17:23:06
Post #13





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

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


Cojack tego już próbowałem i to jest fajne bo ustawia w jakim kodowaniu mają przyjść dane z bazy, i wszystko byłoby fajnie gdyby nie fakt, że część z nich w bazie siedzi w kodowaniu utf8 (prosiłbym tego nie komentować, bo nie mam na to wpływu). Teraz jak użyję tego mssql.charset="cp1250" to te dane, które są zapisane w bazie w kodowaniu utf8 (czyli w bazie są krzaki tych danych) po pobraniu odczytywane są tak jak zostały zapisane w bazie czyli z krzakami. Ja potrzebuję, żeby php odczytało te znaki z bazy dosłownie tak jak zostały zapisane. Czyli jeżeli w bazie mam 'SĹ‚owik' to po pobraniu z bazy tak ma to php przekazać do przeglądarki, która odczyta to jako 'Słowik', a jeżeli w bazie mam 'Słowik' (czyli po pobraniu z bazy będę miał 'S??owik') to tak chcę to mieć, żeby później to przekonwertować przy pomocy funkcji konwertującej na Słowik i dopiero przekazać przeglądarce.
Poza tym mssql.charset nie jest ustawione na serwerze, na którym robiłem stronkę, więc nie chodzi tu o to.

Pozdrawiam.
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: 13.05.2025 - 04:21