mirror of
https://github.com/php/php-src.git
synced 2026-04-02 05:32:28 +02:00
It's a bit surprising how much was broken here. - Identify filter was utterly and completely wrong. - Instead of handling invalid CP1252 bytes as specified by `mb_substitute_character`, it would convert them to Unicode 0xFFFD (generic replacement character). - When converting ISO-8859-1 to CP1252, invalid ISO-8859-1 bytes would be passed through silently. - Unicode codepoints from 0x80-0x9F were converted to CP1252 bytes 0x80-0x9F, which is wrong. - Unicode codepoint 0xFFFD was converted to CP1252 0x9F, which is very wrong. Also clean up some unneeded code, and make the conversion table consistent with others by using zero as a 'invalid' marker, rather than 0xFFFD.