Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kodowanie bazy i polskich znaków w UNICODE
maknus
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.11.2010

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


Witam

Czy jest jakaś funkcja/ustawienie które pozwoli mi kodować bazę danych tak aby polskie znaczki zapisywane były w postaci np: "&#260 ;" zamiast Ą . Wiem że mogę zrobić to z poziomu php wyszukując polskie znaki w stringu i zamieniać na ich numeryczną postać ale jeśli tekst byłby długi to taka funkcja trochę czasu by trwała. Czy jest możliwość zrobienia tego z poziomy bazy danych??

Z góry dziękuję z podpowiedź.

Ten post edytował maknus 31.01.2011, 10:50:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Przede wszystkim pamiętaj o tym, że kodowanie musi być wszędzie zgodne (utf8), to znaczy takie samo w skrypcie php, takie samo w bazie i takie samo na stronie. Odnośnie kodowania w bazie to poszczególne kolumny tekstowe (najlepiej całe tabele) powinny mieć ustawione kodowanie z rodziny utf8_XXX_ci/utf8_XXX_cs, gdzie XXX może być jednym z ciągów: general, polish, unicode. Czyli np. utf8_general_ci. Jeśli chodzi o funkcje w php pomagające zachować jednolite kodowanie:

  1. utf8_encode(string $data);
  2. iconv_set_encoding("internal_encoding", "UTF-8");
  3. iconv_set_encoding("output_encoding", "UTF-8");

Pamiętaj też, że samo kodowanie skryptu php powinno być utf8 bez znacznika bom (byte of mark), można,a nawet trzeba to ustawić (jeśli nie jest ustawione) w edytorze, z którego korzystasz, a jeśli nie, to zmień edytor.
// edit
w mysql są funkcje
  1. character SET utf8
  2. SET names utf8


Ten post edytował darko 31.01.2011, 10:51:08
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: 4.10.2025 - 21:28