Подтвердить что ты не робот

Как преобразовать символы UTF8 в числовые символы в PHP

Является ли перевод приведенного ниже кода возможным с помощью PHP?

Код ниже написан на JavaScript. Он возвращает html с числовыми символьными ссылками там, где это необходимо. Ex. smslån -> smslån

Я не смог создать перевод. Этот script выглядел так, как будто он может работать, но возвращает å для & aring; вместо å, как показано в javascript ниже.

function toEntity() {
  var aa = document.form.utf.value;
  var bb = '';
  for(i=0; i<aa.length; i++)
  {
    if(aa.charCodeAt(i)>127)
    {
      bb += '&#' + aa.charCodeAt(i) + ';';
    }
    else
    {
      bb += aa.charAt(i);
    }
  }
  document.form.entity.value = bb;
}

PHP ord function звучит так, как будто она делает то же самое, что charCodeAt, но это не так. Я использую 195 для å, используя ord и 229, используя charCodeAt. Это, или у меня возникают некоторые невероятно сложные проблемы с кодированием.

4b9b3361

Ответ 1

Используйте mb_encode_numericentity:

$convmap = array(0x80, 0xffff, 0, 0xffff);
echo mb_encode_numericentity($utf8Str, $convmap, 'UTF-8');