On 22/08/16 11:55, Michael Wallner wrote: >> As far as I can see, these functions exist because the XML parser >> > infrastructure needed them, and someone thought it might be handy to >> > expose them to users. Funnily enough, the internal versions actually >> > take a parameter for the target encoding, but only support US-ASCII and >> > 8859-1: https://github.com/php/php-src/blob/master/ext/xml/xml.c#L283 >> > >> > If anything, they should probably have a "str_" prefix, and maybe even >> > be moved into the string section of the source, exposed in such a way >> > that the XML parser can still make use of them. > Thanks for looking deeper. That makes even more sense now.
The original code pre-dates the move to ext/ in 1999 where utf8_decode is hard coded as ISO-8859-1 but uses xml_utf8_decode internally. At that time of cause there was no provision for multi-byte characters and the decoding of a string is hard code in the function. If you look closer you will see that xml_utf8_decode still expects strings of type XML_Char * and so utf8_decode() wraps that to hide the differences. -- Lester Caine - G8HFL ----------------------------- Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php