HTML кодирование и PHP

0

Здравствуйте, im, используя php, мне нужно сравнить данные из моего массива и данных с прочитанного кода. Но у меня проблема с кодировкой html. Пример из моего массива:

"osiemnaście" => 18,

и данные от captcha:

osiemnaście

Как сравнить эти данные? Я уже пробовал "html_entity_decode()", но результатов не было.

Теги:
encoding

3 ответа

1
Лучший ответ

Чтобы декодировать шестнадцатеричные объекты, вам придется немного поработать, поскольку встроенная функция PHP не покрывает их.

$string = "osiemnaście";
$string = preg_replace('/\&\#x([a-fA-F0-9]+)\;/me', 'mb_convert_encoding("&#".hexdec("\\1").";", "UTF-8", "HTML-ENTITIES")', $string);

// $string is now  "osiemnaście"

echo ($string == "osiemnaście")
   ? "success"
   : "failure";
  • 0
    Что ж, после некоторых исследований похоже, что сущности на самом деле являются юникодами (U + xxxx), но представлены в виде шестнадцатеричных.
  • 0
    Я обновил альтернативу для преобразования юникода в HTML кодировку. Попробуйте мой ответ сейчас.
Показать ещё 2 комментария
1

Похож на проблему с символьным набором/кодировкой с характерным акцентом. Убедитесь, что вы устанавливаете UTF-8 как на сервере, так и на стороне HTML.

Прошло много времени с тех пор, как я сделал много PHP, но эта функция может быть полезна: http://php.net/manual/en/function.mb-convert-encoding.php

0

Вы можете сделать это по-другому:

htmlentities("osiemnaście") == $captchainput

Вы должны заботиться о своем file- и кодировке ввода из htmldocument.

Вы можете определить документацию с помощью php:

header('Content-Type: text/html; charset=utf-8');

или в html: <meta charset="utf-8"/>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню