I thought of a way to find out without reading any references or source code:
<?php
$str = '';
for ($i = 1; $i < 256; $i++) {
$str .= chr($i)."\n";
}
$str .= chr(0)."\n";
$dom = new DOMDocument;
$dom->loadHTML($str);
echo $dom->saveHTML();
If you need a correct list then I recommend running that on your own system to get your own list, in case it is different in different versions of PHP etc.
Expect a lot of warning messages, but no errors.
Here's the output I get, except I removed non-character entities with a text editor:
&
€

‚
ƒ
„
…
†
‡
ˆ
‰
Š
‹
Œ

Ž


‘
’
“
”
•
–
—
˜
™
š
›
œ

ž
Ÿ
¡
¢
£
¤
¥
¦
§
¨
©
ª
«
¬
­
®
¯
°
±
²
³
´
µ
¶
·
¸
¹
º
»
¼
½
¾
¿
À
Á
Â
Ã
Ä
Å
Æ
Ç
È
É
Ê
Ë
Ì
Í
Î
Ï
Ð
Ñ
Ò
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
ß
à
á
â
ã
ä
å
æ
ç
è
é
ê
ë
ì
í
î
ï
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
þ
ÿ