Skocz do zawartości

Apache 2.2.6 (fedora) + Mysql 5.0.45 + Php 5.2.4 Na Fedora 7


deathx

Rekomendowane odpowiedzi

Witam. Mam taki problem zainstalowałem wyżej wymienione aplikacje no i mam problem bo nie mam polskich znaków. Wszystkie te aplikacje instalowałem z repozytoriów. Podgrałem bazy dancyh z serwera gdzie był MYSQL 4.0, php4 no i wszędzie tam gdzie dane sa pobierane z bazy to mam znaki zapytania. Nie wiecie o co może chodzić bo już zgłupiałem i nie wiem co zrobić.

 

Zupełnie inna sprawa i inny serwer. Czy ktoś updetował mysql z 4.0 do 5??? Czy nie ma żadnych problemów??? Nie musiałbym tego robić gdyby nie to że autorzy pewnej aplikacj nie wymagali ode mnie tego żeby właśnie ta wersja była z powodu kodowania znaków.

 

Dziękuję za wszelkie pomocne sugestie.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam. Mam taki problem zainstalowałem wyżej wymienione aplikacje no i mam problem bo nie mam polskich znaków. Wszystkie te aplikacje instalowałem z repozytoriów. Podgrałem bazy dancyh z serwera gdzie był MYSQL 4.0, php4 no i wszędzie tam gdzie dane sa pobierane z bazy to mam znaki zapytania. Nie wiecie o co może chodzić bo już zgłupiałem i nie wiem co zrobić.

 

Zupełnie inna sprawa i inny serwer. Czy ktoś updetował mysql z 4.0 do 5??? Czy nie ma żadnych problemów??? Nie musiałbym tego robić gdyby nie to że autorzy pewnej aplikacj nie wymagali ode mnie tego żeby właśnie ta wersja była z powodu kodowania znaków.

 

Dziękuję za wszelkie pomocne sugestie.

Oprócz odpowiedniej konfiguracji mysqla i apacha jeśli

echo mysql_client_encoding($db);

zwraca latin1 to musisz po połączeniu z bazą wywołać

 mysql_query("SET NAMES `latin2`");

Oczywiście zakładam że polskie litery masz w latin2 (iso-8859-2)

Odnośnik do komentarza
Udostępnij na innych stronach

Witam. No więc sprawa wygląda tak. Jak podgrywam tą stronkę na serwer nazwy to wszystkie kogowanie działa bez problemu zaś na moim nie. NIe wiem o co chodzi. Baza jest w latin2_general_ci. Na nazwie po urzyciu kodowania utf-8 znaki polskie jak najbardziej są zas na u mnie na serwerze nie. Może wiecie czego może u mnie brakować???

Odnośnik do komentarza
Udostępnij na innych stronach

Witam. No więc sprawa wygląda tak. Jak podgrywam tą stronkę na serwer nazwy to wszystkie kogowanie działa bez problemu zaś na moim nie. NIe wiem o co chodzi. Baza jest w latin2_general_ci. Na nazwie po urzyciu kodowania utf-8 znaki polskie jak najbardziej są zas na u mnie na serwerze nie. Może wiecie czego może u mnie brakować???

 

Chetnie bym ci pomogl ... ale napisz po polsku bo ja nie rozumiem :blink:

Odnośnik do komentarza
Udostępnij na innych stronach

W wolnym tłumaczeniu. Mam u siebie na serwerze stronkę podgraną i mam do niej eksport bazy w latin2. Podgrywając bazkę na serwer nazwa.pl i jak odwołuję się do niej na stronce znaki wyświetlają się prawidłowo. Zaś jak podgram tą bazę u siebie i do niej odwołam to w miejsce polskich znaków pojawiają się znaki zapytania (mówię tu tylko o informacjach pobieranych z bazy ponieważ tekst z plików dekoduje prawidłowo zaś z bazy już nie). (_odrazu_ → od razu) ORT mówię że wersje mysql i u mnie i na nazwie są takie same. Teraz pytanie czego u mnie brakuje co jest na nazwa.pl żeby u mnie polskie znaki wyświetlało prawidłowo???

Odnośnik do komentarza
Udostępnij na innych stronach

W wolnym tłumaczeniu. Mam u siebie na serwerze stronkę podgraną i mam do niej eksport bazy w latin2. Podgrywając bazkę na serwer nazwa.pl i jak odwołuję się do niej na stronce znaki wyświetlają się prawidłowo. Zaś jak podgram tą bazę u siebie i do niej odwołam to w miejsce polskich znaków pojawiają się znaki zapytania (mówię tu tylko o informacjach pobieranych z bazy ponieważ tekst z plików dekoduje prawidłowo zaś z bazy już nie). (_odrazu_ → od razu) ORT mówię że wersje mysql i u mnie i na nazwie są takie same. Teraz pytanie czego u mnie brakuje co jest na nazwa.pl żeby u mnie polskie znaki wyświetlało prawidłowo???

 

1. Jak eksportujesz baze?

2. Jakie kodowanie masz ustawione w bazie na swoim kompie? Tez latin2? (_napewno_ → na pewno) ORT na nazwa.pl jest latin2 a nie UTF8?

Odnośnik do komentarza
Udostępnij na innych stronach

Eksport bazy dostaję od kogoś z zewnątrz. A robię dwa dokładnie takie same importy na nazwa.pl i u siebie. Z nazwy.pl potem dane wyswietlają się dobrze na stronie a w danch pobieranych ode mnie zamiast polskich znaków są znaki zapytania.

 

A jak ty ten plik importujesz do swojej bazy? mysql << baza.sql ??? Masz u siebie stworzona baze latin2 na ten import?

Odnośnik do komentarza
Udostępnij na innych stronach

A jak ty ten plik importujesz do swojej bazy? mysql << baza.sql ??? Masz u siebie stworzona baze latin2 na ten import?

Robie dokładnie tak jak piszesz. Wiesz nie jestem w tym laikiem bo nie raz robilem takie importy ale tym razem coś nie wychodzi. Szczerze powiem że pierwszy raz mam coś takiego, bo jak napisałem nigdy wcześniej nie miałem takiego problemu.

 

No to kolega powyżej wspomniał, SET NAMES latin2 dla lokalnej bazy. Ewentualnie, jeśli na localu masz domyślnie utf możesz skorzystać z iconv i zrobić konwersję latin2 -> utf8.

Robiłem tak i niestety to nic nie zmienilo.

 

P.S.: Moim skromnym zdaniem czegoś mi brakuje u mnie w mysqlu ale nie wiem czego

Odnośnik do komentarza
Udostępnij na innych stronach

A na pewno masz w Apachu wylaczone te domyslne kodowanie co po isntalcji z pakietu jest? Dla statycznych stronek w roznych kodowaniach masz oki znaczki?

 

Dokladnie o to chodzi (ma byc zakomentowane albo wywalic):

 

# Specify a default charset for all content served; this enables
# interpretation of all content as UTF-8 by default.  To use the 
# default browser choice (ISO-8859-1), or to allow the META tags
# in HTML content to override this choice, comment out this
# directive:
#
#AddDefaultCharset UTF-8

Odnośnik do komentarza
Udostępnij na innych stronach

Kiedyś robiłem pracę w PHP i MySQL, miałem identyczny problem, a to było strasznie wkurzające... w necie jest sporo pomysłów na rozwiązanie tego problemu, ja troszkę rozwiązałem używając tak:

 

<?php
header("Content-Type: text/html; charset=iso-8859-2");
session_start(); 
?>


<html> 
<head> 
<title>Strona główna</title> 
<meta http-equiv="Content-Type" content="text/html"; charset="utf8_general_ci">

 

i podczas łączenia się z bazą danych:

mysql_query ("SET CHARACTER SET latin2");
mysql_query ("SET collation_connection = latin2");
  return true;

 

ten drugi kod jest bardzo ważny, powinno pomóc... zresztą jak w pierwszym zmienisz z iso na utf, albo windows1250, to w bazie danych też się mogą zmienić ze znaków zapytania na inne znaczki

Odnośnik do komentarza
Udostępnij na innych stronach

<?php
header("Content-Type: text/html; charset=iso-8859-2");
session_start(); 
?>


<html> 
<head> 
<title>Strona główna</title> 
<meta http-equiv="Content-Type" content="text/html"; charset="utf8_general_ci">

 

Ten kod nie jest dobry wysylasz najpierw naglowek z iso ... a potem z utf8 :P

 

A kodowanie windows1250 to w bazie nie ustawisz :P Bo to #@#$@#$ :P

 

Ja zawsze dodaje tak w klasie czy funkcji, ktora sobie napisze do obslugi bazy:

 

mysql_query("SET NAMES utf8") or ("Blad zapytania");

mysql_query("SET CHARACTER SET utf8") or ("Blad zapytania");

mysql_query("SET collation_connection = utf8_general_ci") or ("Blad zapytania");

 

Oczywiscie z kodowaniem, ktore uzywasz (ja polecam tylko jedyne sluszne - UTF8)

 

PS. sprawdziles to w Apachu co podalem?

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...