Для PHP, «всегда безопасно предшествовать не-буквенно-цифровому с« \ », чтобы указать, что он обозначает себя». - http://php.net/manual/en/regexp.reference.escape.php .
За исключением случаев, когда это «или».: /
Чтобы избежать переменных шаблона регулярных выражений (или частичных переменных) в PHP, используйте preg_quote ()
Черт, я никогда не замечал эту ошибку в JDOM 2.
Вы получите те же результаты, что и любой персонаж, не принадлежащий к BMP. Вы можете попробовать смайлики мании последних лет и увидеть, что вы получите те же результаты.
Это происходит из-за того, что стратегия escape автоматически устанавливается для кодировок UTF, независимо от кодировки. То, что он делает, довольно неправильно.
Это будет исправлено, если вы замените стратегию на стратегию, которая ничем не отличается от зарезервированных символов XML:
format.setEscapeStrategy((c) -> false);