Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html/php]problem z konwersja polskich znakow
Forum PHP.pl > Forum > Przedszkole
Bojakki
Znalazlem taka funkkcje:

  1. <?php
  2. function plCharset($string) {
  3.  
  4.    $string = strtolower($string);
  5.    $polskie = array(',', ' - ',' ','ę', 'Ę', 'ó', 'Ó', 'Ą', 'ą', 'Ś', 's', 'ł', 'Ł', 'ż', 'Ż', 'Ź', 'ź', 'ć', 'Ć', 'ń', 'Ń','-',"'","/","?", '"', ", 'ś', '!','.', '&', '&amp;', '#', ';', '[',']','domena.pl', '(', ')', '`', '%', '”', '„', '…');
  6.    $miedzyn = array('-','-','-','e', 'e', 'o', 'o', 'a', 'a', 's', 's', 'l', 'l', 'z', 'z', 'z', 'z', 'c', 'c', 'n', 'n','-',"","","","","",'s','','', '', '', '', '', '', '', '', '', '', '', '', '');
  7.    $string = str_replace($polskie, $miedzyn, $string);
  8.  
  9.    $string = preg_replace('/[^0-9a-z-]+/', '', $string);
  10.  
  11.    $string = preg_replace('/[-]+/', '-', $string);
  12.  
  13.    $string = trim($string, '-');
  14.  
  15.    $string = stripslashes($string);
  16.  
  17.    $string = urlencode($string);
  18.  
  19.    return $string;
  20. }
  21. ?>


Funkcja dziala dobrze, jezeli dam jej jakiegos stringa bezposrednio, jezeli jednak wyciagam jakis tekst z bazy to wtedy zamiast liter ą i ś nie ma nic. W bazie mam kodowanie latin2_general_ci. Wszystko w bazie jak i na stronie wyswietla sie dobrze (to znaczy bez krzakow i sa polskie znaki), a zamienia zle:/
rybik
bo skrypt jest w UTF a baza wypuszcza ISO-8859-2, skonwertuj polskie znaki w skrypcie (najprościej cały ten fragment) z utf do iso-8859-2,

dodatkowe uwagi dla zainteresowanych

1. 'ó' != strtolower('Ó')
2. preg_replace i preg_match można wysypać stringiem ze znakami narodowymi, wypada używać do tego funkcji mb_
Bojakki
Rzeczywiscie. Znalzlem funkcje uniwesalna dla iso, win i utf i wszystko dziala jak trza.
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.