Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kodowanie - ślepa uliczka?
Change
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.06.2010

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


Witam, od 2 lat prowadzę pewne forum (które od startu było równocześnie startem mojej styczności z html,php,mysql i siecią), parę miesięcy temu podczas przenosin na inny serwer. Wtedy też dopiero - gdy po przeniesieniu bazy miałem krzaki zamiast polskich znaków, zleciłem to "specjaliście". Forum na vBulletin. Okazało się że kodowanie mojej bazy to latin1_swedish_ci , a wg niego konwersja tego na utf8 jest niemożliwa (siedział nad tym pare dni), bez utraty polskich znaków we wszystkich postach itp. Czy da się coś zrobić, czy już zawsze będę miał problem siedząc w tym kodowaniu?
Pozdrawiam i liczę na pozytywną odpowiedź (IMG:style_emoticons/default/worriedsmiley.gif)

Ten post edytował Change 16.04.2011, 13:08:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Noidea
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


Po pierwsze musisz sprawdzić w jakim kodowani tak na prawdę masz dane w starej bazie danych. Odpal zapytania:
  1. SET NAMES latin1; -- wypróbuj również latin2, utf8 i cp1250
  2.  
  3. SELECT kolumna_z_polskimi_znakami FROM tabela WHERE id = ID_WIERSZA_KTÓRY_ZAWIERA_DUŻO_POLSKICH_ZNAKÓW

(Najlepiej zrobić to przez narzędzie typu MySQL Workbench, ale jeśli będziesz robił to przez skrypt PHP i przeglądarkę, to pamiętaj, żeby poinformować ją o kodowaniu, np:
header( "Content-Type: text/plain; charset=iso-8859-1" ); )

Jak już się dowiesz jak tak na prawdę zakodowane są twoje polskie znaki, to robisz zrzut bazy do pliku .sql, wstawiasz w pierwszej linijce:
  1. SET NAMES kodowanie; -- wstaw tu odpowiednie kodowanie z pierwszego kroku
i wczytujesz na nowym serwerze. Oczywiście nowe tabele tworzysz już w kodowaniu utf8.

Przykładowo jeśli obecnie twoje polskie znaki zakodowane są jako latin2, to zrzut bazy powinien wyglądać tak:
  1. SET NAMES latin2;
  2.  
  3. CREATE TABLE jakas_tabela (
  4. jakas_kolumna varchar(255) NULL
  5. ...
  6. ) CHARSET=utf8
  7.  
  8. ...
  9.  
  10. INSERT INTO jakas_tabela (jakas_kolumna, ...) VALUES ('tekst z polskimi znakami zakodowanymi jako latin2', ...)
  11.  
  12. ...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 23:59