如何在PHP中将UTF8字符转换为数字字符实体

时间:2011-09-30 09:47:26

标签: php javascript utf-8 char translation

使用PHP是否可以完全翻译以下代码?

以下代码是用JavaScript编写的。它返回带有数字字符引用的html。防爆。的 smslån -> smslån

我没有成功创建翻译。 This script看起来可能有效,但 å 返回å而不是 å 作为下面的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's ord function听起来像charCodeAt一样,但事实并非如此。我使用ord来å 195 ,使用charCodeAt获得 229 。那,或者我遇到了一些难以置信的编码问题。

1 个答案:

答案 0 :(得分:33)

使用mb_encode_numericentity

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