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

a masz jakiś kawałek bazy do obróbki?

ewentualnie stwórz bylajaką nową bazę w latin1 wbij do niej jedną tabele z rekordem z polskimi ogonkami(duże i małe litery), przekoduj na utf-8 i masz już matryce

46279b204b.png

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

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

wyszło mi coś takiego, (ale niech ktoś jeszcze u siebie sprawdzi)

Ä„

Ć

Ę

Å

Ń

Ó

Åš

Å»

Ź

Ä…

ć

Ä™

Å‚

Å„

ó

Å›

ż

ź

dla tej kolejności:

Ą,Ć,Ę,Ł,Ń,Ó,Ś,Ż,Ź,ą,ć,ę,ł,ń,ó,ś,ż,ź

Teraz tylko wstawić to do pliku i gotowe

46279b204b.png

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

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

<?php
 $krzaki = array( 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ż', 'Ź', 'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ż', 'ź', );
 $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);
 }
 ?> 

Jak ktoś zrobi testy niech się pochwali wynikiem!

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

Nie, to nie utf-8.

Ale skrypt masz wyżej, tylko przypasować te Twoje znaczki do niego i działać. Jak zrobisz takie tablice jak wyżej to pochwal się gotowym już kodem. ^_^

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

Cześć,

widzę że miłą niespodziankę mi zrobiliście za co Wam dziękuję ^_^

zaraz sam popróbuję co nieco, chodź nie wierze że coś wyjdzie.

A tak ogólnie, Matma, DawPi, Warencjusz - można się spodziewać jakiegoś tutka jak to zmienić po kolei? Sądzę że wiele osób może być zainteresowanych.

Odnośnik do komentarza
Udostępnij na innych stronach

Skrypt działa sprawdziłem, trzeba tylko go poprawić (dopisać kod) by otwierał plik bazy, zamieniał krzaczki na ogonki i tak zmienione dane zapisywał w nowym pliku. Bo teraz jest tak, że pobiera dane, przerabia je i żeby zobaczyć efekt trzeba w przeglądarce wyświetlić źródło strony. DawPi to dla Ciebie zadanie ^_^

46279b204b.png

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

Odnośnik do komentarza
Udostępnij na innych stronach

Zrób tak do jakiegoś katalogu wrzuć plik bazy np: baza.sql, następnie stwórz plik o nazwie konwerter.php o zawartości:

<?php
   $krzaki = array( 'Ä„', 'Ć', 'Ę', 'Å', 'Ń', 'Ó', 'Åš', 'Å»', 'Ź', 'Ä…', 'ć', 'Ä™', 'Å‚', 'Å„', 'ó', 'Å›', 'ż', 'ź', );
   $ogonki = array( 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ż', 'Ź', 'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ż', 'ź' );

    $fp = fopen("baza.sql", "r");
    $dane = fread($fp, filesize("baza.sql"));
    $dane =  str_replace( $krzaki, $ogonki, $dane );

    $fp = fopen("nowabaza.sql", "w");
    fputs($fp, $dane);
    fclose($fp);
 ?>

Odpal plik, po zakończeniu w tym samy katalogu pojawi się nowy plik z przerobioną bazą o nazwie nowabaza.sql

Ale przy dużych bazach zrób to lepiej na localu i ewentualnie podziel pliki na mniejsze.

46279b204b.png

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

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

matma4u: za dużo może danych na sesję pobrać serwer i się zawiesić. ^_^ Co jak plik będzie miał 100MB? Wyżej jest podany kod na to. Tylko dorób to z tym nowym plikiem i gites majones 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

Ten kod co podałem to był tak sklecony na szybko, żeby tylko go przetestować (z sukcesem zresztą). I jak możesz to złóż to w całość bo ja ja już spadam, a net może nam odlecieć jak tego nie będzie ^_^

46279b204b.png

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

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra to podaję rozwiązanie dla tych co nie mogą spać :D Tak ma być zawartość pliku konwerter.php Testowałem na plikach 2 MB i działa.

<?php
   $krzaki = array( 'Ä„', 'Ć', 'Ę', 'Å', 'Ń', 'Ó', 'Åš', 'Å»', 'Ź', 'Ä…', 'ć', 'Ä™', 'Å‚', 'Å„', 'ó', 'Å›', 'ż', 'ź', );
   $ogonki = array( 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ż', 'Ź', 'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ż', 'ź' );
    $file = "nowabaza.sql";
    $fp = @fopen("baza.sql", "r");
    if ($fp) {
          while (!feof($fp)) {
          $buffer = fgets($fp, 4096);
          $buffer =  str_replace( $krzaki, $ogonki, $buffer );
          flock($fp, 2);
          $fp2 = fopen($file, "a");
          fputs($fp2, $buffer); 
          flock($fp, 3); 
                             }
             }
           fclose  ($fp);
           fclose  ($fp2);
 ?>

46279b204b.png

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

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, zapomniałem jeszcze o jednej rzeczy, że w przypadku kilkukrotnego uruchomienia skryptu, za każdym razem do pliku nowyplikbazy.sql będzie dodawana kolejna zawartość a tego nie chcemy. To już jest końcowy i poprawny kod jaki powinien znajdować się w pliku konwerter.php


   <?php
     $krzaki = array( 'Ä„', 'Ć', 'Ę', 'Å', 'Ń', 'Ó', 'Åš', 'Å»', 'Ź', 'Ä…', 'ć', 'Ä™', 'Å‚', 'Å„', 'ó', 'Å›', 'ż', 'ź', );
     $ogonki = array( 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ż', 'Ź', 'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ż', 'ź' );
      $file = "nowyplikbazy.sql";   
      $test = file_exists($file);
      if ($test)
       {
       echo "Skasuj plik nowyplikbazy.sql na serwerze i ponownie uruchom skrypt konwerter.php";
       }
       else
       {
      $fp = @fopen("plikbazy.sql", "r");
      if ($fp) {
            while (!feof($fp)) {
            $buffer = fgets($fp, 4096);
            $buffer =  str_replace( $krzaki, $ogonki, $buffer );
            flock($fp, 2);
            $fp2 = fopen($file, "a");
            fputs($fp2, $buffer); 
            flock($fp, 3); 
                               }
               }
                           fclose  ($fp);
               fclose  ($fp2);
               echo "Koniec konwersji";
                }

   ?>


Notepad++, menu Format. Masz wypisane kodowania pliku - jakie masz zaznaczone?

Objaśnienia:

plikbazy.sql - to plik bazy, który trzeba przekonwertować

nowyplikbazy.sql - plik o tej nazwie zostaje automatycznie utworzony i w nim znajduję się przekonwertowana zawartość pliku plikbazy.sql

konwerter.php - UTF-8

46279b204b.png

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

Odnośnik do komentarza
Udostępnij na innych stronach

Bawie się bawie..

wrzucam plik do konwertera wszystko cacy, importuję i posty wyglądają tak

"po do¶æ d³ugiej przerwie kt�ra by³a spowodowana uszkodzeniem bazy danych postanowi³em, ¿e e-gfx ponownie wr�ci do sieci.

Sporo czasu spêdzi³em my¶l±c czy to jest sens - czy jest, do tej pory tego nie wiem, wszystko zale¿y od Was, u¿ytkownik�w.

Mam zamiar zrobiæ forum, kt�re bêdzie tworzone przez u¿ytkownik�w. Cze¶æ"

Metoda porównywania napisów: utf8_general_ci

Edytowane przez net
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ę.