Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: osCommerce
Forum PHP.pl > Forum > Gotowe rozwiązania
sajborg
Witam mam problem dostałem od admina serwera taki komunikat

Cytat
W związku ze zmianami kodowania baz prosimy o zastosowanie tych metod celem ustrzeżenia się przed usterkami na stronach Państwa klientów. Bazy od dziś będą kodowane systemem standardowym dla Polski czyli iso-latin2 (iso8859-2)


Bazy które miały ustawione kodowanie na latin1 (iso8859-1)

a znaki w bazie zakodowane były w latin2 (ustawienia niestandardowe

stosowane w starych bazach) powinny być przekodowane do

latin2.

Być może nie każdy wie jak to zrobić, wystarczy więc

w pliku w którym występuje połączenie do bazy zaraz

po połączeniu do bazy (BD_CONN) wysłać następujące

zapytanie SQL:



$db->sql_query("SET NAMES latin1");



które zmieni ustawienie domyślne połączeń serwera z latin2 na latin1.

Każdy użytkownik może w ramach swojego oprogramowania,

dokonać samodzielnie zmian wszystkich parametrów serwera

bez względu na to jakie są ustawienia domyślne:



$db->sql_query("SET character_set_connection=latin1");

$db->sql_query("SET character_set_client=latin1");

$db->sql_query("SET character_set_results=latin1");



Sam również może zmienić kodowanie bazy na dowolne

jakie mu pasuje.



Informujemy iż rozwiązanie gdzie baza kodowana jest w latin1

a znaki w niej wprowadzone są kodowane w latin2 jest

rozwiązaniem niepoprawnym gdyż polskie znaki są błędnie

rozpoznawane przez bazę (np. w sytuacji kiedy wyświetlamy

wyniki w kolejności alfabetycznej) problemy z ich rozpoznaniem

będą również w nowych wersjach phpMyAdmin który

obsługuje tylko standardowe systemy kodowania.



Dodam jeszcze że mając poprawne kodowanie bazy i znaków w latin2

w prosty sposób możemy zmienić kodowanie strony WWW na UTF-8

czyli standard międzynarodowy, wystarczy więc tylko ustawić przy

połączeniu do bazy system połączeń na utf8:



$db->sql_query("SET NAMES utf8");



i na stronie www zmienić charset na uft-8:



<meta http-equiv="Content-Type" content="text/html; charset=utf-8">



w ten sposób mamy stronę zakodowaną w utf-8 bez konieczności

jakichkolwiek zmian w bazie.

Polecamy te rozwiązanie.

Administracja


I mam problem co mam zrobic wrzucalem nowa baze juz 6 razy probowalem rozne kodowania z mysql ale nic kodowania strony na UTF-8 nie zmienie napewno ale jest jeden wyjatek w panelu admina mam normalnie polskie znaki jak dodam powiedzmy kategorie potem normalnie sie wyswietla ale na stronie juz nie czym to moze byc spowodowane questionmark.gif w pliku z jezykiem mam kodowanie na

define('CHARSET', 'iso-8859-2');

w pliku admina takie samo wiec ja juz nie wiem sad.gif
Vogel
w osCommerc po nawiazaniu polaczenia z baza daj:
  1. SET names utf8
sajborg
To nic nie daje przypominam baza jest w utf8_polish_ci kazde pole aa i jeszcze ze w adminie dobrze odczytuje a na glowniej nie sad.gif


zadziałało dopiero jak dodałem:
  1. <?php
  2. tep_db_query("SET NAMES latin2");
  3. ?>


wczesniej popelnilem blad bo dałem to od razu po połaczeniu z baza a na koncu było zmiana na utf8 znowu biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.