Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana wielkości znaków diakrytycznych w UTF-8
Forum PHP.pl > Forum > PHP
jakubmroz.com
Witam,
Jak można dokonać konwersji ciągu znaków zawierającego znaki diakrytyczne (ą, ć, ź, ż...) bez użycia tablic, w które wpisane są na sztywno znaki.

Zastosowanie do wyszukiwania danych z bazy danych MySQL, kodowanie UFT-8.

Czy istnieję zestawienie funkcji operujących na stringach tak aby w rezultacie z textu, np. Łobodziński otrzymać ŁOBODZIŃSKI?

Proszę o przykład kodu.
nevt
a co do pierwszego, to MySQL sam to załatwia, musisz tylko ustawić odpowiednie COLLATE dla bazy/ tabeli /pola, albo dodać klauzulę COLLATE wprost do zapytania SQL, np.:
  1. SELECT 'roza' = 'róża' COLLATE 'utf8_polish_ci';

zwróci 0 (FALSE) - w tym trybie odróżnia znaki narodowe, ale
  1. SELECT 'roza' = 'róża' COLLATE 'utf8_general_ci';

zwróci 1 (TRUE) - w tym trybie dla bazy a = ą, c=ć, itd...
powodzenia.
jakubmroz.com
Dziękuję za szybką pomoc i trafną odpowiedź.
Jakub M.
jml
Jeśli wszystkie pliki zapiszesz w UTF-8 (windows standardowo zapisuje w windows1250 czy cos), w bazie ustawisz dla bazy kodowanie UTF-8 i colate UTF-8 general ci (general wystarczy, nie musi być polish a ma i znaki narodowe z wiekszosci innych jezyków). Dodatkowo przy wyswietlaniu w dokumencie HTML oczywiscie w meta:
  1. <meta http-equiv="content-type" content="text/html; charset=utf-8" />

To chyba już trywialne ale wspomniałem, to nie będziesz miał więcej problemów z polskimi znakami smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.