Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kodowanie mysql - rodzaje, przestawianie i konwersja
tosiek
post
Post #1





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

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


Witam. Zacznę tak : Lepiej zapobiegać niż leczyć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Czyli aktualnie miałem bazę mysql w latin1 bo tak było w standardzie mojego 1 hostingu ;/ Aktualnie chcę się przesiąść na utf8. Ale zaczynają się schody bo po eksporcie bazy do pliku jako utf8 polskie znaki zakodowały się jakoś dziwnie bo chyba w utf8 na jeden znak polski przypadają jakieś dwa znaczki np wg tej tabeli:
(IMG:http://www.vpx.pl/up/20080721/tabelka.png)
W utf8 przypadają 2 znaki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) A ja najprawdopodobniej w bazie mam po jednym np;
zamiast ł - ł
Kod
ś - ś
ą - ą
ę - ę
ż - ż
ź - ź
ć - ć
ń - ń
Ż - Ż
Ó - Ó
Ł - Ł
Ć- Ć
Ę- Ę
Ś - Ś
Ą - Ą
Ź - Ź
Ń - Ń

I tak dalej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) I to jest chyba mieszanka z latin1 bo typowej konwersji nie przeprowadziłem. Tylko wyeksportowałem wcześniej jak utf8 zmieniłem ustawienia bazy takimi zapytaniami:
Kod
ALTER DATABASE `utf8` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
SET CHARACTER SET utf8;
SET collation_database = utf8_general_ci;

I wgrałem od nowa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) I forum się nie wykrzaczyło ( mam phpbb by przemo ) ale teraz jestem ciekawy jak to przerobić na prawdziwe utf8 i czy te zapytania zmieniają wszystkie potrzebne ustawienia ?

A co do ustawień to ile jest kodowań ? Tzn nie o rodzaje ale o ilość bo jest kodowanie jakie wysyła plik łączący się z baza potem jakie są ?
I do czego służy System porównań dla połączenia MySQL: ?

Bo po prostu chcę pominąć konwersję zapytań żeby wszystko odbywało się w jednym kodowaniu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) I żeby jak najszybciej ^^

Mam do dyspozycji takie narzędzie ale jakie kodowanie wybrać wejściowe a jakie wyjściowe ? Dostępne kodowania są w tabeli wyżej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
http://www.przemo.org/phpBB2/forum/viewtopic.php?t=33530


cos tamte znaki pozmieniało to tu jest:
(IMG:http://www.vpx.pl/up/20080721/21.png)

Ten post edytował tosiek 21.07.2008, 10:20:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
artega
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

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


tosiek, wykonaj po prostu mysqldump -u uzytkownik --default-character-set=utf8 baza > plik.sql. Oczywiście zastąp polecenie odpowiednimi wartościami a jeżeli nie masz dostępu do mysqldump to przed zapytaniami zrzucającymi dane i strukture bazy wykonaj
  1. SET NAMES utf8
po czym otwórz plik bazy edytorem który obsługuje kodowanie utf8 i zmień w zapytaniach tworzących strukture tabel CHARSET na utf8 zamiast latin1 i po sprawie - baza sam zajmie się resztą. Podczas importowania danych do nowej bazy nie zapomnij ustawić domyślnego kodowania znaków na utf8 tym samym poleceniem które podałem wyżej.
Cytat
I do czego służy System porównań dla połączenia MySQL: ?

Gdyby manual działał w chwili gdy to pisze odesłał bym do niego ale... na Twoje szczęście nie działa. System porównań znaków pozwala np. posortować ciągi znaków w odpowiedni sposób by wyrazy zaczynające się na literę ć nie lądowały na końcu listy posortowanej tylko zaraz po c (to tłumaczenie na chłopski rozum w dużym skrócie)
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 - 18:57