2013-08-27 68 views
1

我越來越AA請求,這樣和URL看起來是這樣的:http://domain.com/page.php?text= {阿拉伯語詞}獲得阿拉伯語查詢字符串問號

現在我試圖讓使用$ _GET文[「文本」],但我不斷得到它像「????????」 ,什麼問題

<?php 
    header('Content-type: text/html; charset=UTF-8'); 
    include('EnTransliteration.class.php'); 
    $tr = new EnTransliteration(); 

    $str = iconv("utf-8//TRANSLIT//IGNORE","windows-1256", $_GET['text']); 
    $en_str = $tr->ar2en($str); 

    $string = <<<XML 
    <root> 
    <translation>$en_str</translation> 
    </root> 
    XML; 

    $xml = new SimpleXMLElement($string); 
    header('Content-type: text/xml; charset=UTF-8'); 
    echo $xml->asXML(); 
    ?> 
+0

我有同樣的問題,但找不到解決方法:(你解決了這個問題嗎?請指教 – moderns

回答

0

您的Apache服務器可能不接受UTF-8的URL編碼。請參閱this答案以解決您的問題。

希望這將有助於:)

+0

我試了一下,我試了一個.htaccess文件,仍然沒有更改 – test

0

你的HTML表單需要顯式聲明的數據必須爲UTF-8發送。否則,它將使用用戶的語言環境,這可能不意味着Windows-1256,當然也不意味着UTF-8。

例如

<form action="" method="get" accept-charset="UTF-8"> 
+0

我沒有從請求表單獲取請求,因爲這個URL http://domain.com/page.php?text= {Arabic Word} – test

+0

你的意思是你直接在瀏覽器的地址欄中輸入它?!?那麼,在這種情況下,您會收到Windows-1256或任何OS語言環境的輸入。 「類型」接收UTF-8的唯一方法是要求用戶使用URL編碼,這顯然對於「直接瀏覽器」打字非常不方便。如果您使用的是file_get_contents(「http:// ...」),則可以在UTF-8內容上使用rawurlencode()。 –

+0

@boen_robot它適用於Chrome和Safari,但在IE,Opera和Firefox中出現問號。通過在地址欄上直接輸入阿拉伯語文本,是否可以在所有瀏覽器上運行? – moderns

0

也許這可以幫助:

<?php 
     $title = 'أبجد هوز'; 
     $path1 = '/product/'.rawurlencode($title); 
     echo $path1."<br>"; 
     $path2 = rawurldecode($path1); 
     echo $path2; 
    ?> 
+0

這是真的,但我不是發送請求的人 – test

-1

1開開始

2,打開記事本

3,編寫代碼

4,當你保存文件make編碼:utf-8

5文件名name.html name.php

+0

你似乎不知道他在說什麼......你在談論文件編碼,除此之外,他正在得到一個結果,所以他運行腳本在網絡服務器:) –