Скажем, у меня есть слово «русский», написанное на кириллице. Это будет бивалент следующего в Hex:
Русский
Мой вопрос: как написать функцию, которая будет идти от «русского» на кириллице до ее шестнадцатеричного значения, как указано выше? Может ли эта же функция работать и для одиночных байтовых символов?
〹
thingies называются HTML-сущностями. В PHP есть функция, которая может создавать эти: mb_encode_numericentity
Docs , это часть расширения Multibyte String ( Demo ):
$cyrillic = 'русский'; $encoding = 'UTF-8'; $convmap = array(0, 0xffff, 0, 0xffff); $encoded = mb_encode_numericentity($cyrillic, $convmap, $encoding); echo $encoded; # русский
Однако: вам нужно знать кодировку вашей кириллической строки. В этом случае я выбрал UTF-8
, в зависимости от этого вам нужно изменить параметр $encoding
функции и массив $convmap
.
Ваш предоставленный пример не является шестнадцатеричным, но если вы хотите преобразовать его в hex, попробуйте следующее:
function strToHex($string) { $hex=''; for ($i=0; $i < strlen($string); $i++) { $hex .= dechex(ord($string[$i])); } return $hex; } function hexToStr($hex) { $string=''; for ($i=0; $i < strlen($hex)-1; $i+=2) { $string .= chr(hexdec($hex[$i].$hex[$i+1])); } return $string; } echo strToHex('русский'); // d180d183d181d181d0bad0b8d0b9