chr(255).chr(254); $utf8BOM = chr(239).chr(187).chr(191); // find out browser accepted encodings if($BrowserEncoding != ''){ $temp = explode(';',$_SERVER['HTTP_ACCEPT_CHARSET']); $temp = explode(',',$temp[0]); $BrowserEncoding = $temp; $temp = ''; } if($MbstringEncodings == "" && extension_loaded("mbstring")){ $MbstringEncodings = array(); $temp = mb_list_encodings(); $i = 1; foreach($temp as $k => $v){ if($v == "pass" || $v == "auto" ) continue; else $MbstringEncodings[$i] = $v; $i++; //use $i=1 so array_search won't return FALSE if 0 } $temp = ''; $i = ''; mb_detect_order($MbstringEncodings); } SDV($Utf8BOMInASCII, 0); SDV($Utf8WithoutBOM, 0); SDV($Utf8AlwaysRunConv, 0); SDV($Utf8ConvMaxRuns, 7); if(is_ascii($str)){ if($Utf8BOMInASCII == 1) $bom = 1; if($Utf8BOMInASCII == 0 && $bom == 1 ) $bom = 0; if($Utf8AlwaysRunConv == 1) $RunConv = 1; else $RunConv = 0; }elseif(utf8_compliant($str)){ if($Utf8AlwaysRunConv == 1) $RunConv = 1; else $RunConv = 0 ; }elseif(!utf8_compliant($str)){ if($Utf8AlwaysRunConv == 0) $RunConv = 1 ; else $RunConv = 1 ; } $MaxRuns=1; while(!utf8_compliant($str) && $RunConv = 1) { if(extension_loaded('mbstring')){ // find current encoding $strenc = mb_detect_encoding($str); // try some options to convert $str content to utf-8 if( $strenc != '' ){ if(array_search($strenc, $MbstringEncodings) != 0){ $str = mb_convert_encoding($str,"UTF-8",$strenc); } }elseif( $strenc == '' && @$HebciEncoding != '' ){ if(array_search($HebciEncoding, $MbstringEncodings) != 0){ $str = mb_convert_encoding($str,"UTF-8",$HebciEncoding); } } }else{ if($BrowserEncoding){ if($BrowserEncoding[0] != '' && $BrowserEncoding[0] != "UTF-8") $str = iconv($BrowserEncoding[0],"UTF-8",$str); if($BrowserEncoding[1] != '' && $BrowserEncoding[1] != "UTF-8") $str = iconv($BrowserEncoding[1],"UTF-8",$str); }elseif( $HebciEncoding != "" ){ $str = iconv($HebciEncoding,"UTF-8",$str); }elseif( $Charset != "" ){ $str = iconv($Charset,"UTF-8",$str); }else{ $str = iconv("ISO-8859-1","UTF-8",$str); } } if($MaxRuns == $Utf8ConvMaxRuns) break; else $MaxRuns++; } $str = CharStrip($str); if($bom == 0 && substr($str,0,2) == $utf8BOM){ // strip BOM while(substr($str,0,2) == $utf8BOM){ $str = substr($str,3); } }elseif($bom == 1 && substr($str,0,2) != $utf8BOM ){ // add BOM while(substr($str,0,2) == $utf8BOM){ $str = substr($str,3); } $str= $utf8BOM.$str; } return $str; } // conversions // n if(@$_GET['n']) @$_GET['n'] = @utf8conv($_GET['n']); if(@$GLOBALS['n']) @$GLOBALS['n'] = @utf8conv($GLOBALS['n']); //pagename $pagename = utf8conv($pagename,0); $FmtPV['$RequestedPage'] = "'".htmlspecialchars($pagename, ENT_QUOTES)."'"; $Cursor['*'] = &$pagename; // if editing convert text so we always save utf-8 if(@$_POST['text']) @$_POST['text'] = @utf8conv($_POST['text']);