Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> latin2 -> latin1, przenoszenie bazy; kodowanie
Sputnik
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.11.2005

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


Witam!

Przenoszę bazę na inny serwer i mam problem z kodowaniem.
Przeczytałem już kilka tekstów w sieci z tym związanych, jednak wszystkie metody jakich użyłem okazały się niewystarczające. Albo ja to źle robiłem ...

Przedstawię ogólną konfigurację:
Baza przenoszona z Serwer1 na Serwer2.
Serwer1
Ustawienia na stronie głównej phpmyadmin(2.6.4-pl2) :
Cytat
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: utf8_general_ci

Zabytanie do bazy:
Kod
SHOW VARIABLES LIKE "character_set%";

zwraca:
Cytat
character_set_client  utf8
character_set_connection  utf8
character_set_database  latin2
character_set_results  utf8
character_set_server  latin2
character_set_system  utf8
character_sets_dir  /usr/share/mysql/charsets/

Serwer2
Ustawienia na stronie głównej phpmyadmin(2.6.1):
Cytat
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: utf8_polish_ci

Zabytanie do bazy:
Kod
SHOW VARIABLES LIKE "character_set%";

zwraca:
Cytat
character_set_client  utf8
character_set_connection  utf8
character_set_database  latin1
character_set_results  utf8
character_set_server  latin1
character_set_system  utf8
character_sets_dir  /usr/share/mysql/charsets/

W obec takch ustawień, jakie kroki powiniennem poczynić, aby kodowanie na Serwer2 było prawidłowe?
Przy wgrywaniu bazy z poziomu phpmyadmin, jaki zestaw znaków dla pliku wybrać?
Z góry dziękuję za pomoc.
(IMG:http://img83.imageshack.us/img83/6798/phelp8as.gif)

Ten post edytował Sputnik 31.01.2006, 16:00:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tosiek
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

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


Hmm dla mnie np. wygodniej ustawić sobie bazę ( host ) pod własne wymagania niż przerabiać - konwertować całą bazę. Bo może się to skończyć utratą znaków polskich, z reguły konwersji używa się do naprawy baz gdzie występuje wiele kodowań ( ale z reguły ręcznie) czyli do ratowania bazy. Do konwersji możesz spróbować użyć gżegżółki
http://www.gzegzolka.com/

Ale i tak wolę dodać w pliku łączącym się z bazą jedną linijkę niż przerabiać 70 baz danych.
Wywołujesz SET NAMES przez mysql_query i baza jest ustawiona pod twoje wymagania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Jakby co w dokumentacji masz dużo o ustawieniach: http://dev.mysql.com/doc/refman/5.0/en/cha...connection.html

Ale i tak polecam "przestawić" nową baze na latin2:
wstaw pod:
Cytat
$dbselect = mysql_select_db($this->dbname);

to:
Cytat
mysql_query('SET NAMES latin2 COLLATE latin2_general_ci', $this->db_connect_id);


Oczywiście $dbselect będzie się różnić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale zostajecie we własnym kodowaniu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A żeby przestawić baze na latin2 możecie wejść w operacje >> system porównania na latin2_general_ci
lub wykonać zapytanie:
Cytat
ALTER DATABASE `nazwa_bazy` DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci;

za `nazwa_bazy` wstawcie nazwę bazy (przydałoby się narzędzie które by zmieniało dla istniejących tabel )
I macie przestawioną bazę na latin2 i każda tabela jaka wgracie będzie miała kodowanie latin2 i tylko będzie brakować mysql_query

Przy aktualizacji skryptu z reguły plików łączących z bazą się nie zmienia więc zawsze gdzie przeniesiesz ten plik takie kodowanie przyjmie baza podczas połączenia. No i trzeba tez przestawić bazę co zajmie 30sec roboty

PS wykonjcie sobie zapytanie:
Cytat
SET NAMES latin2 COLLATE latin2_general_ci;
SHOW VARIABLES LIKE 'character_set%';

I
Cytat
SET NAMES latin2 COLLATE latin2_general_ci;
SHOW VARIABLES LIKE 'collation%';


To zobaczycie jak ładnie ustawia waszą bazę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował tosiek 22.09.2008, 06:25:00
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: 6.10.2025 - 08:21