urlencode,URLEDECODE,在php中表示波斯语或阿拉伯语

urlencode,URLEDECODE,在php中表示波斯语或阿拉伯语,php,urlencode,urldecode,Php,Urlencode,Urldecode,我从一个站点的rss中获取新闻分类,如下所示: $rss = new DOMDocument(); $rss->load('http://isna.ir/fa/Sports/feed'); $feed = array(); foreach ($rss->getElementsByTagName('item') as $node) { $item = array ( 'category' => $node->getElementsByTagName(

我从一个站点的rss中获取新闻分类,如下所示:

$rss = new DOMDocument();
$rss->load('http://isna.ir/fa/Sports/feed');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
    $item = array (
        'category' => $node->getElementsByTagName('category')->item(0)->nodeValue,
        );
    array_push($feed, $item);
}

$category = $feed[0]['category'];
function category_selector($str){
    switch ($str) {
        case 'فوتبال، فوتسال':
            return '1';
            break;
        case 'كشتي، رزمي':
            return '2';
            break;
        case 'جهان ورزش':
            return '3';
            break;
        case 'توپ و تور':
            return '4';
            break;
        case 'ورزش بانوان':
            return '5';
            break;
        case 'علم ورزش':
            return '6';
            break;
        case 'نهادهاي ورزشي و ساير':
            return '7';
            break;
        default:
            return '0';
            break;
    }
}
现在我想使用一个函数为每个类别指定一个数字,如下所示:

$rss = new DOMDocument();
$rss->load('http://isna.ir/fa/Sports/feed');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
    $item = array (
        'category' => $node->getElementsByTagName('category')->item(0)->nodeValue,
        );
    array_push($feed, $item);
}

$category = $feed[0]['category'];
function category_selector($str){
    switch ($str) {
        case 'فوتبال، فوتسال':
            return '1';
            break;
        case 'كشتي، رزمي':
            return '2';
            break;
        case 'جهان ورزش':
            return '3';
            break;
        case 'توپ و تور':
            return '4';
            break;
        case 'ورزش بانوان':
            return '5';
            break;
        case 'علم ورزش':
            return '6';
            break;
        case 'نهادهاي ورزشي و ساير':
            return '7';
            break;
        default:
            return '0';
            break;
    }
}
但是类别选择器($category)为所有新闻返回0!
我也使用urlencode函数,但它没有改变任何东西。

我理解,只需在切换($str)之前的
行打补丁

mb_internal_encoding("utf-8");
我在网站上使用,我现在没有问题

您的脚本应该是这样的一个示例

function category_selector($str){
mb_internal_encoding("utf-8");
switch ($str) {
    case 'فوتبال، فوتسال':
        return '1';
        break; ...

我相信它应该能工作。

检查编码。所有内容都是UTF8吗?当然,我使用
标题('Content-Type:text/html;charset=utf-8')在我的代码开头。你加载的rss怎么样?rss有波斯语字符,我用我写的有问题的代码得到rss,还有文件中的unicode头!