Mam problem z kasowanie polskich znaków, które są wyciąganie z bazy danych.
W bazie danych mam tekst z polskimi znakami, baza zapisuje tekst w latin2_general_ci.
Strona jest wyświetlana w iso-8859-2.
Skrypt połaczenia bazy danych
FUNCTION dbconn($autoclean = false) { global $mysql_host, $mysql_user, $mysql_pass, $mysql_db; IF (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass)) { switch (mysql_errno()) { case 1040: case 2002: case 1203: IF ($_SERVER[REQUEST_METHOD] == "GET") die("<html><head><meta http-equiv=refresh content=\"10 $_SERVER[REQUEST_URI]\"></head><body><table border=0 width=\"100%\" height=100%><tr><td><h3 align=center>Serwer w tym momęcie jest bardzo obciążony. Automatyczne odświeżanie, proszę czekać...</h3></td></tr></table></body></html>"); else die("Too many users. Please press the Refresh button in your browser to retry."); DEFAULT: die("[" . mysql_errno() . "] dbconn: mysql_connect: " . mysql_error()); } } mysql_select_db($mysql_db) OR die('dbconn: mysql_select_db: ' + mysql_error()); user(); mysql_query("SET NAMES 'latin2'"); mysql_query("SET CHARACTERSET 'latin2'"); IF ($autoclean) register_shutdown_function("autoclean"); }
skrypt czyszczący znaki PL
function znaki($text){ "\xb1", "\xe6", "\xea", "\xb3", "\xf1", "\xf3", "\xb6", "\xbc", "\xbf", "\xa1", "\xc6", "\xca", "\xa3", "\xd1", "\xd3", "\xa6", "\xac", "\xaf", ); "\x61", "\x63", "\x65", "\x6c", "\x6e", "\x6f", "\x73", "\x7a", "\x7a", "\x41", "\x43", "\x45", "\x4c", "\x4e", "\x4f", "\x53", "\x5a", "\x5a", ); foreach($text as $key => $value) { } return $array; }else { } }
nie mam pojęcia dla czego polskie znaki nie są czyszczone.