2015-11-07 27 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; 
?> 

我還沒有測試它。