2015-11-07 80 views
1

我试图让一个UTF-8字符串的HTML实体,
例子:example.com/search?q=مرحباPHP:获取编码的HTML实体

<?php 
    echo htmlentities($_GET['q']); 
?> 

我:

مرحبا0مرحبا 

它的UTF-8文本不是html实体, 我需要的是:

&#1605;&#1585;&#1581;&#1576;&#1575; 

我试过urldecodehtmlentities的功能!

+0

@AbraCadaver赦免! – Coder

+0

您需要将Html页面编码更改为unicode UTF-8,您可以从浏览器中检查当前编码。要更改默认编码,请参阅@ user1122069答案。 –

+0

@编码请选择您的答案 – user1122069

回答

1

将此代码添加到您的文件的开头:

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

的浏览器需要知道它是UTF-8。这个标签也可以进入正式部分。

<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
0

我想你可以通过获取字符串中的每个字符并获取它的值来解决它。
Mark Bakeranswervartecanswer你可以得到:

<?php 
    $chrArray = preg_split('//u',$_GET['q'], -1, PREG_SPLIT_NO_EMPTY); 
    $htmlEntities = ""; 
    foreach ($chrArray as $chr) { 
     $htmlEntities .= '&#'._uniord($chr).';'; 
    } 
    echo $htmlEntities; 
?> 

我还没有测试它。