note 51417 deleted from function.utf8-decode by cmb

From: Date: Sun, 11 Dec 2016 11:38:50 +0000
Subject: note 51417 deleted from function.utf8-decode by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-208544@lists.php.net to get a copy of this message
Note Submitter: JF Sebastian ---- The following Perl regular expression tests if a string is well-formed Unicode UTF-8 (Broken up after each | since long lines are not permitted here. Please join as a single line, no spaces, before use.): ^([\x00-\x7f]| [\xc2-\xdf][\x80-\xbf]| \xe0[\xa0-\xbf][\x80-\xbf]| [\xe1-\xec][\x80-\xbf]{2}| \xed[\x80-\x9f][\x80-\xbf]| [\xee-\xef][\x80-\xbf]{2}| f0[\x90-\xbf][\x80-\xbf]{2}| [\xf1-\xf3][\x80-\xbf]{3}| \xf4[\x80-\x8f][\x80-\xbf]{2})*$ NOTE: This strictly follows the Unicode standard 4.0, as described in chapter 3.9, table 3-6, "Well-formed UTF-8 byte sequences" ( http://www.unicode.org/versions/Unicode4.0.0/ch03.pdf#G31703 ). ISO-10646, a super-set of Unicode, uses UTF-8 (there called "UCS", see http://www.unicode.org/faq/utf_bom.html#1 ) in a relaxed variant that supports a 31-bit space encoded into up to six bytes instead of Unicode's 21 bits in up to four bytes. To check for ISO-10646 UTF-8, use the following Perl regular expression (again, broken up, see above): ^([\x00-\x7f]| [\xc0-\xdf][\x80-\xbf]| [\xe0-\xef][\x80-\xbf]{2}| [\xf0-\xf7][\x80-\xbf]{3}| [\xf8-\xfb][\x80-\xbf]{4}| [\xfc-\xfd][\x80-\xbf]{5})*$ The following function may be used with above expressions for a quick UTF-8 test, e.g. to distinguish ISO-8859-1-data from UTF-8-data if submitted from a <form accept-charset="utf-8,iso-8859-1" method=..>. function is_utf8($string) { return (preg_match('/[insert regular expression here]/', $string) === 1); }

« previous php.notes (#208544) next »