Таким образом, у меня есть строка с \ x кодами, такими как "\ xA3", и печать их в кодировке UTF-8 выведет правильные символы, такие как £ в этом случае.
Но как мне сохранитьисходное представление, так что вместо него просто распечатывается \ xA3?
Я пытался использовать str_replace("\\x", "\\x", $xcodes)
, и я также пытался preg_replace('#\\\\x\w+#', '\\x', $xcodes)
, но ни один из них не работает.
Редактировать 1: ПожалуйстаОбратите внимание, что строки взяты из внешних источников, поэтому использование одинарных / двойных кавычек в PHP не имеет значения.Как только я распечатываю их напрямую, эти символы преобразуются в символы, поэтому я хочу найти способ сохранить коды \ x и просмотреть необработанное представление.
Редактировать 2: Строкиисходят от пользовательского агента с кодами, такими как \ xA3 \ xA9 (да, тесты эксплойтов Shellshock), поэтому, когда я запускаю следующее:
$ua = $_SERVER['HTTP_USER_AGENT'];
// Prepare query with PDO, "insert into user_agents (values) values (:ua)"
// Define placeholder :ua as string $ua.
// Execute insert query.
MySQL вернет «недопустимое строковое значение, \ xA3 \ xA9" ошибка.Отчасти поэтому я хочу сохранить представление шестнадцатеричного кода, а также чтобы я мог видеть непечатаемые символы.
Поэтому вместо «Chrome 70.45 [непечатные символы]» я бы увидел «Chrome 70,45 \ Ax3 \ xA9 ".