<?php
// UTF-16 surrogate codepoints have no valid encoding in any UTF form.
// https://en.wikipedia.org/wiki/UTF-16#U.2BD800_to_U.2BDFFF
// If they could be validly represented in UTF-8 their bytes
// would be:
$high = "\xED\xa1\x92"; // codepoint D852
$low = "\xED\xBD\xA2"; // codepoint DF62
$pair = $high.$low;
var_dump(
@\iconv('UTF-8', 'UTF-8', $high) === false,
@\iconv('UTF-8', 'UTF-8', $low) === false,
@\iconv('UTF-8', 'UTF-8', $pair) === false
);
/* Should be:
* bool(true)
* bool(true)
* bool(true)
*
* Result on Windows with 7.0 or 7.1 is:
* bool(false)
* bool(false)
* bool(false)
*/
Fatal error: Uncaught Error: Call to undefined function iconv() in /in/Ff6cr:13
Stack trace:
#0 {main}
thrown in /in/Ff6cr on line 13
Process exited with code 255.
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 13
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 14
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 15
bool(false)
bool(false)
bool(false)
Output for 4.3.2 - 4.3.11, 4.4.0 - 4.4.9
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 13
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 14
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 15
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 13
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 14
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/Ff6cr on line 15