2013-08-27 2 views
1

Я получаю ау запрос, как это и URL-адрес выглядит следующим образом: http://domain.com/page.php?text= {арабского слово}Получения арабской Строки запроса в вопросе Marks

Теперь пытаюсь получить текст, используя $ _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

У меня такая же проблема, но пока не удается найти решение :(Вы решили эту проблему? Pls advise – moderns

ответ

0

Возможно, ваш сервер Apache не принимает кодировку URL UTF-8. См. 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 или независимо от локали ОС. Единственный способ получить «вид» UTF-8 - попросить пользователей использовать кодировку URL, что, очевидно, будет очень неудобным для ввода текста «прямо в браузер». Если вы используете file_get_contents («http: // ...»), вы можете использовать rawurlencode() над контентом UTF-8. –

+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

Вы, кажется, не знаете, о чем он говорит ... Вы говорите о кодировке файла, кроме того, он получает результат, поэтому он запустил скрипт в веб-сервере :) –

Смежные вопросы