note 80838 added to function.iconv

From: Date: Sat, 02 Feb 2008 18:40:59 +0000
Subject: note 80838 added to function.iconv
Groups: php.notes 
Request: Send a blank email to php-notes+get-135738@lists.php.net to get a copy of this message
function detectUTF8($string) { return preg_match('%(?: [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte |\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte |\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates |\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 |[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 |\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )+%xs', $string); } function cp1251_utf8( $sInput ) { $sOutput = ""; for ( $i = 0; $i < strlen( $sInput ); $i++ ) { $iAscii = ord( $sInput[$i] ); if ( $iAscii >= 192 && $iAscii <= 255 ) $sOutput .= "&#".( 1040 + ( $iAscii - 192 ) ).";"; else if ( $iAscii == 168 ) $sOutput .= "&#".( 1025 ).";"; else if ( $iAscii == 184 ) $sOutput .= "&#".( 1105 ).";"; else $sOutput .= $sInput[$i]; } return $sOutput; } function encoding($string){ if (function_exists('iconv')) { if (@!iconv('utf-8', 'cp1251', $string)) { $string = iconv('cp1251', 'utf-8', $string); } return $string; } else { if (detectUTF8($string)) { return $string; } else { return cp1251_utf8($string); } } } echo encoding($string); ---- Server IP: 195.54.192.44 Probable Submitter: 92.49.208.7 ---- Manual Page -- http://www.php.net/manual/en/function.iconv.php Edit -- https://master.php.net/note/edit/80838 Del: integrated -- https://master.php.net/note/delete/80838/integrated Del: useless -- https://master.php.net/note/delete/80838/useless Del: bad code -- https://master.php.net/note/delete/80838/bad+code Del: spam -- https://master.php.net/note/delete/80838/spam Del: non-english -- https://master.php.net/note/delete/80838/non-english Del: in docs -- https://master.php.net/note/delete/80838/in+docs Del: other reasons-- https://master.php.net/note/delete/80838 Reject -- https://master.php.net/note/reject/80838 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#135738) next »