- var_dump: documentation ( source)
<?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)
*/