Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

[PMA] zmiana kodowania bazy.


net

Rekomendowane odpowiedzi

Witajcie,

wyczytałem że iPB 3 najlepiej czuję się pod kodowaniem utf-8, przy okazji nie będę miał zapewne problemów z spolszczeniem.

W związku z tym mam do Was kilka pytań.

1. Czy poniższym poleceniem sql zostanie zmienione kodowanie wszystkich tabel na utf-8 ?

ALTER DATABASE `nazwa_bazy` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci 

2. Jeżeli to nie ten kod, (znaleziony w sieci aczkolwiek dzisiaj nie myślę..) to czy istnieje szybki oraz prosty sposób kodowania tabel z latin 1 do utf-8 ?

3. Jakie problemy mogą wyniknąć podczas zmiany kodowania?

Pozdrawiam i przepraszam,

Konrad ;D

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 61
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

  • Manager

Ad 1 - no nie do końca.To bodajże zmiana tylko jednego pola w bazie danych.

Ad 2 - grrr, latin1! Niedawno próbowaliśmy razem z Wareczkiem zmienić kodowanie bazy z latin1 na utf8 i pupa zbita. Nie znaleźliśmy żadnego skryptu do zmiany tych dziwnych znaczków z latin1. Jak znajdziesz to daj znać i spróbujemy.

Ad 3 - jeśli zrobisz to dobrze, czyli zmiana kodowania bazy, tabel i każdego pola w każdej tabeli to żadne. Oczywiście plus zmiana samych znaków w polach zawierających treści. Powiem Ci, że jeszcze nie udało mi się przekonwertować latin1 na utf8. :|

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Ad 1. Nie pola, tylko kodowania bazy. Dodatkowo czeka Cię zmiana kodowania każdej tabeli.

Ad 2. Dokładnie ^_^ Ja co prawda nadal szukam, ale wszystko co jest w necie to cienizna i nic nie wykonuje pełnej konwersji do utf-8. Ktokolwiek da radę z latin1 -> utf8, niech podzieli się doświadczeniem :)

Ad 3. Nie pytaj o problemy, tylko rób backup i testuj na kopii.

Tak przy okazji... Poza małymi problemami z kodowaniem spolszczenia. W czym jeszcze tracę nie mając bazy w utf8 ? Co nie będzie mi działało, albo działało źle?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Tak przy okazji... Poza małymi problemami z kodowaniem spolszczenia. W czym jeszcze tracę nie mając bazy w utf8 ? Co nie będzie mi działało, albo działało źle?

Miałem napisać, że z FURLem, ale on i na UTF-8 nie działa dobrze, a powinien. Może wreszcie w wersji 3.0.1 to poprawili ( tzn. coś tam z FURLem poprawili bo widziałem listę zmian z 3.0.0 do 3.0.1 ).

Jeśli poprawią FURLa i będzie działać na innym kodowaniu na UTF-8 to nie będę się mógł do niczego przyczepić.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Krok do przodu.

W bazie wszędzie mam utf8_general_ci ,

posty wyglądają tak "Kanar, Ty da³e¶ foto Gaary z pierwszej czê¶ci Naruto, ja rysowa³em tego z Shippuudena. <img src='http://e-gfx.pl/public/style_emoticons/<#EMO_DIR#>/wink.gif' class='bbc_emoticon' alt=':)' />"

Wszystko dobrze cacy, tylko polskie znaki prawidłowo wyświetlają się pod kodowaniem ISO-8859-2 a pod UTF-8 krzaki

Za proste się wydawało ^_^

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Bo to kodowanie w bazie jest takie a'la isowskie. ^_^

Dodaj sobie nowy temat i zobacz, że w bazie będą inne znaki. :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Sam nie wiem, jak z latin1 przebić się do utf-8! :) Kiedyś manią było ustawianie kodowań latin1 i teraz są tego efekty.

Anyway - forum na latin1 powinno Ci działać. ^_^ nedds.pl działa to i Twoje będzie.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Zróbcie tak: przekodujcie zawartość do ASCI, żeby wszystkie ogonki były zapisane w formacie: costam;

A myślisz, że nie próbowałem? Miałem problem z oznaczeniem polskich ogonów w kodzie z latin1. Skrypt ja mam do zmian znaków, ale nie mam, że tak się wyrażę, matrycy. ^_^

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Ten pierwszy Wareczek testował - tylko nie pamiętam co było nie tak, ale było. ^_^

Czytałem, że bodajże iconv nie przemieli polskich znaków.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Hm kiedyś znajomemu odkrzaczałem bazę po zmianie na utf i robiłem to na piechotkę w notepad++ na zasadzie zamiany odpowiedniego krzaczka na na odpowiednią literę oraz wpisów iso na utf trochę zabawy ale się udało. Baza była ok 50 mb.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Dokładnie - tak też można, ale trzeba mieć (!) matrycę/wzór - no kody tych krzaczków polskich by wiedzieć z czego na co ( to chyba wiadome ^_^ ) zamienić.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale to można wyczytać w bazie np w wyrazie "który" jeśli w wyrazie zamiast "ó" będzie krzaczek to właśnie Taki krzaczek trzeba zamienić na "ó" i analogicznie z każdą lokalną literą. W sumie bazę np 50mb można w niecałą godzinę tak zmodyfikować a nawet krótszym czasie jak się ma wprawę.

Odnośnik do komentarza
Udostępnij na innych stronach

Na początek przekodować bazę z latin1 na utf-8, a potem plik bazy przerobić skryptem

<?php
 $krzaki = array( tu krzaczki dla ó, ć,  itd );
 $ogonki = array( ‘Ą’,'Ć’,'Ę’,'Ł’,'Ń’,'Ó’,'Ś’,'Ż’,'Ź’,'ą’,'ć’,'ę’,'ł’,'ń’,'ó’,'ś’,'ż’,'ź’ );

 $handle = @fopen("plikbazy.sql", "r");
 if ($handle) {
     while (!feof($handle)) 
    {
         $buffer = fgets($handle, 4096);

         $buffer = str_replace( $krzaki, $ogonki, $buffer );

         echo $buffer;
     }
     fclose($handle);
 }
 ?> 

46279b204b.png

Rozwiążemy dla Ciebie każde zadanie z matematyki: http://matma4u.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.