Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: znak nie chce się zasąpić
Forum PHP.pl > Forum > PHP
Lemik
dziwna kwestia, po przeniesieniu bazy widnieją wszędzie zamiast polskich liter znaki zapytania.

Na przykład wyraz przeżycie

na początku prezentował się "??Ă??", chciałem zastąpić całą sekwencję choć na jeden znak, ale nie dało rady, pozbyłem się jedynie pierwszych znaków zapytania z całej bazy.

teraz wyraz "przeżycie" wygląda tak: "prze??ycie"

i gdy dam
UPDATE tabela SET komórka = REPLACE( komórka, 'prze??ycie', 'przezycie' )

to nic mi nie zmieni, komunikat że zamiast pierwszego znaku zapytania jest sekwencja " & # 6 5 5 3 3 ; " (bez spacji)

czyli pokazuje " p r z e & # 6 5 5 3 3 ; ? y c i e " (bez spacji)

a gdy edytuję tabelę ręcznie, to w komórce jet wyraźnie, że jest to wyraz "prze??ycie"

Więc czemu mi nie chce zmieniać i wywala mi takie coś?
Może ktoś mi pomoże?
AxZx
mi sie wydaje ze kodowanie bazy/tabeli masz inne niz tej poprzedniej.
zmien na to samo kodowanie.
Lemik
tylko jak, jak w PHPMyAdmin na nowym serwerze nie mam kolumny "SYSTEM PORÓWNAŃ" i nie mam jak zmienić tego kodowania dla tabeli sad.gif
Zbłąkany
Ale jest iconv i inne rozszerzenia do kodowan tongue.gif
Lemik
cokolwiek to miałoby znaczyć, jakbym miał to zrobić? Jakiś skrypt mam wrzucić na hosting i odpalić?
bo inaczej nie mogę, tylko mogę wykonać coś co jest w zakresie hostingu. Zgranie bazy i przekonwertowanie na dysku nie wchodzi w gre.
Adiasz
Po pierwsze sprawdz i napisz w jakim kodowaniu masz baze lokalnie, na hostingu i co masz wpisane w meta, znaczek Ă pojawia sie gdy stringa zakodowanego w UTF prubujesz wyswietlic w ISO
Lemik
na pierwotnym hostingu "System porównywania znaków" był ustaiony na "latin1", potem po zmianie hostingu (admin hostingu mi to wgrywał) zauważyłem że tabela ustaiona jest na "latin2", i właśnie miałem problemy z zamienianiem takowych znaków. Musiałem zmienić na "latin1" by wyświetlały się prawidłow znaki na stronie, no i było chyba git. Niestety admini przenieśli na inny serwer całą bazę gdzie nie ma systemu porównywania znaków w phpmyadmin i huk go wie jakie jest teraz kodowanie. Gdy zgram bazę to nie jest wyszczególnione tak jak kiedyś jaki jest system kdowania znaków, po prostu nie ma tych danych takowych:

więc
kiedyś było tak:
  1. [SQL]CREATE TABLE nazwa_tabeli (
  2. ...
  3. ...
  4. PRIMARY KEY (`id`),
  5. KEY `search_date` (`search_date`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=94169 ;
[/SQL]

teraz jest tak:
  1. CREATE TABLE nazwa_tabeli (
  2. ...
  3. ...
  4. PRIMARY KEY (`id`),
  5. KEY `search_date` (`search_date`)
  6. ) ENGINE=MyISAM AUTO_INCREMENT=94169 ;


a w znacznikach meta przy wyświetlaniu wydaje mi się że jest ISO-2, choć nigdzie nie mogę takowych wpisów znaleźć, bo jest to badzo złożona baza,

...ale jednak znalazłem coś takiego:

  1. <?php
  2. if( strtolower($this->ipclas->vars['gb_char_set']) != 'iso-8859-2' &&
  3. strtolower($this->ipclas->vars['gb_char_set']) != 'utf-8' )
  4. ?>


ta pierwsza linijka na początku była jako "iso-8859-1" ale nie wyświetlało polskich znaków zaraz po napisaniu, więc zmieniłem na "iso-8859-2" smile.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-2025 Invision Power Services, Inc.