Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne] kodowanie, przejscie z iso na utf
lnn
post 1.02.2010, 00:19:09
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


witam

mam takie pytanie, otoz ustawialem do tej pory kodowanie na iso, lecz pomyslalem ze powszechnie stosuje sie utf-8 to i ja przejde.
problem polegal na tym ze konwertujac pliki w notatniku pojawily mi sie bledy typu headers already sent, po przekonwertowaniue kED do UTF jest w porzadku, czy uwazacie ze w jakiejs kwestii technicznej moga wystapic bledy (krzaczki) ?

a jeszcze pytanie odnosnie bazy, baza tez byla w iso i zeby ja przekonwertowac do utf to musze cos w niej zmieniac oprocz kodowania??

EDIT

przy wyciaganiu z bazy pojawiaja mi sie krzaczki a sa polskie litery w bazie :/ i kodowanie utf8

Ten post edytował lnn 1.02.2010, 00:37:47
Go to the top of the page
+Quote Post
pedro84
post 1.02.2010, 01:57:08
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Pamiętaj, aby dokument (plik php) był również kodowany w utf-8. Tutaj masz dobry artykuł na ten temat.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
scorpion_1982
post 1.02.2010, 01:59:16
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 10.12.2007
Skąd: Nowy Sącz

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


pedro84 linki do zewnetrznych stron podajemy w code, taki sposób wstawiania linku jest niezgodny z regulaminem.

Jeśli chodzi o kodowanie plików.

nie możesz używać notatnika, totatnik koduję do cp-1250(Windows) kodowanie standardowe w windows.

Ja do kodowania utf-8 używam eclipse for php i nie narzekam.

Natomiast jeśli chodzi o bazę danych..

Musisz bazę stworzyć z domyślnym kodowanie utf8

oraz tabele jak i pola porównywać metodą utf8_polish_ci a charset na utf8.

Jeśli chodzi o dane, po zmianie na utf8 nic nie zmienić, tzn. nowe dane które wprowadzisz będziesz miał poprawne, a stare będziesz miał z krzaczkami..

Musisz zgrać bazę na dysk i przy imporcie użyć kodowania utf8, nie wiem czy phpmyadmin umożliwia taki zabieg.

Nigdy nie miałem potrzeby zmieniać kodowania z iso na utf8.

Bez kopiowania danych się nie obejdzie. Najpierw pasowało by zgrać to w kodowaniu iso, później przy wgrywaniu kodować znaki do utf8..

Pozdrawiam.




Sorry za odstępy 2x miedzy liniami ale jestem na unixie i na operze, a ten edytor ma widać problem z kodowaniem enterem unix..

Ten post edytował scorpion_1982 1.02.2010, 02:03:54
Go to the top of the page
+Quote Post
cojack
post 1.02.2010, 09:57:29
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Nie, ten edytor nie ma problemu z kodowanie entera w unixie, to opera ma problem z js. (pracuje na linuxie i wiem).

W mysql jeżeli nie masz dużo tabel to możesz zrobić tak, utworzyć sobie kopie tych tabel np z jakimś prefixem, dajmy na to utf8_ i następnie coś takiego:

  1. SELECT CONVERT(_latin1'Müller' USING utf8);
  2. INSERT INTO utf8table (utf8column)
  3. SELECT CONVERT(latin1field USING utf8) FROM latin1table;


http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html

Lub tutaj link:

http://yoonkit.blogspot.com/2006/03/mysql-...n1-to-utf8.html

Ćwicz.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
scorpion_1982
post 1.02.2010, 10:55:42
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 10.12.2007
Skąd: Nowy Sącz

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


cojack - Nie zauważyłem by np. taki edytor jak CKEditor miał problem na operze, działa aż  miło, Mam najnowszą wersje Opery jak i FireFox i problem występuję tu i tu, co najciekawsze na safari działa edytor dobrze, czyli prawdopodobnie albo te przeglądarki mają problem, albo JS jest pisany pod starsze przeglądarki, a kompatybilność wstecz naszych programów jest kiepska.

Go to the top of the page
+Quote Post
lnn
post 1.02.2010, 15:17:42
Post #6





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Cytat(scorpion_1982 @ 1.02.2010, 01:59:16 ) *
Natomiast jeśli chodzi o bazę danych..
Musisz bazę stworzyć z domyślnym kodowanie utf8
oraz tabele jak i pola porównywać metodą utf8_polish_ci a charset na utf8.
Jeśli chodzi o dane, po zmianie na utf8 nic nie zmienić, tzn. nowe dane które wprowadzisz będziesz miał poprawne, a stare będziesz miał z krzaczkami..
Musisz zgrać bazę na dysk i przy imporcie użyć kodowania utf8, nie wiem czy phpmyadmin umożliwia taki zabieg.
Nigdy nie miałem potrzeby zmieniać kodowania z iso na utf8.
Bez kopiowania danych się nie obejdzie. Najpierw pasowało by zgrać to w kodowaniu iso, później przy wgrywaniu kodować znaki do utf8..

zrobilem tak, zgralem baze, przekonwertowalem dane na utf, zmienilem kodowanie i porownywanie, dodalem nowy rekord z poziomu phpmyadmin i nadal mam krzaczki ohmy.gif

Ten post edytował lnn 1.02.2010, 16:06:54
Go to the top of the page
+Quote Post
scorpion_1982
post 1.02.2010, 15:33:09
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 10.12.2007
Skąd: Nowy Sącz

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


Pisałem ci byś zastosował porównanie napisów utf8_polish_ci - zastosowałeś inne, będziesz miał problemy przy wyszukiwaniu ale jak się nie słucha twoja sprawa.

2. Pokazałeś że ustawiłeś porównanie napisów, a kodowania tu nie widać, możesz mieć nadal latin2 itp., z tąd te krzaczki..

Jaki ustawiłeś charset przy tworzeniu tabel questionmark.gif
Nie powiem ci jak to jest z phpmyadmin bo nie korzystam z tego cuda.
Tworzysz table używając charset=utf8 i COLLATE utf8_polish_ci
i nie ma cudów musi działać. chyba że wysyłasz dane źle zakodowane..
3. Jak tworzysz bazę to z odpowiednim kodowaniem,

Jeśli, zakładasz tabele to również, każde pole które posiadać będzie polskie napisy powinno mieć

COLLATE utf8_polish_ci czyli

nazwa text COLLATE utf8_polish_ci not null,

4. dodatkowo do tabeli musisz dodawać charset

przykład tabeli:

  1.  
  2. CREATE TABLE `przyklad` (  `ID` int(8) NOT NULL AUTO_INCREMENT,  `nazwa` text COLLATE utf8_polish_ci, PRIMARY KEY (`ID`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci
Zagadaj do mnie na gg.

Ten post edytował scorpion_1982 1.02.2010, 15:47:53
Go to the top of the page
+Quote Post
lnn
post 1.02.2010, 15:47:21
Post #8





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Cytat(scorpion_1982 @ 1.02.2010, 15:33:09 ) *
Pisałem ci byś zastosował porównanie napisów utf8_polish_ci - zastosowałeś inne, będziesz miał problemy przy wyszukiwaniu ale jak się nie słucha twoja sprawa.

2. Pokazałeś że ustawiłeś porównanie napisów, a kodowania tu nie widać, możesz mieć nadal latin2 itp., z tąd te krzaczki..

Jaki ustawiłeś charset przy tworzeniu tabel questionmark.gif

juz usunalem screeny bo zrobilem je zanim pomodyfikowalem wszystko, zmienilem kodowanie bazy na utf8 a tabela wyglada tak:
  1. CREATE TABLE IF NOT EXISTS `wojewodztwa` (
  2. `id` int(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(19) COLLATE utf8_polish_ci NOT NULL,
  4. PRIMARY KEY (`id`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


moze blad tkwi w polaczeniu ze domyslne kodowanie inaczej ustawia?

http://wortal.php.pl/wortal/artykuly/pomys...e_znaki_a_mysql
jak zmienic moje polaczenie do takiej postacji jak w przykladzie powyzej?

  1. <?php
  2. /* KONFIGURACJA POLACZENIA Z BAZA DANYCH */
  3.  
  4. function polaczenieDb() {
  5. // serwer
  6. $mysql_server = "localhost";
  7. // login administratora
  8. $mysql_user = "root";
  9. // haslo - pozostawic puste jak w domyslnej instalacji XAMPP!!! /zmienic to/
  10. $mysql_pass = "pass";
  11. // wybor bazy danych
  12. $mysql_db = "katalog2";
  13. // nawiazanie polaczenia z serwerem MySQL
  14. @mysql_connect($mysql_server, $mysql_user, $mysql_pass)
  15. or die('Wystapił błąd połączenia z serwerem MySQL');
  16. // wybor i polaczenie z baza danych
  17. @mysql_select_db($mysql_db)
  18. or die('Wystąpił błąd połączenia z bazą danych');
  19. }
  20. ?>
Go to the top of the page
+Quote Post
scorpion_1982
post 1.02.2010, 15:51:19
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 10.12.2007
Skąd: Nowy Sącz

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


Zaraz po wybraniu bazy wyślij takie coś:

  1.  
  2. mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
  3.  


I będzie śmigać jak należy..

Go to the top of the page
+Quote Post
lnn
post 1.02.2010, 15:55:27
Post #10





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


dzieki smile.gif dziala jak nalezy! +POMÓGŁ!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 04:14