2017-01-15 28 views
1

で正しくstr_split .IT doesntの仕事でいくつかの問題があり、これは実行した後に私のコード私は私の言語

 $string="رستوران"; 
    $arr = str_split($string); 
    var_dump($arr); 
    echo '<br>'; 

です:

array (size=14) 
    0 => string '�' (length=1) 
    1 => string '�' (length=1) 
    2 => string '�' (length=1) 
    3 => string '�' (length=1) 
    . 
    . 
    . 

me.thanksたくさん

+1

文字がユニコードで表されていることを確認しましたか? –

+0

それはどういう意味ですか?どうすればいいですか? – efns

答えて

1

ペルシャ文字列の操作にはMultibyte String Functionsを使用する必要があります。 あなたのポルプスにはpreg_splitを使うことができます。

print_r(preg_split('//u', "رستوران ها", null, PREG_SPLIT_NO_EMPTY)); 
Output: 
Array 
(
    [0] => ر 
    [1] => س 
    [2] => ت 
    [3] => و 
    [4] => ر 
    [5] => ا 
    [6] => ن 
    [7] => 
    [8] => ه 
    [9] => ا 
) 
2

使用を助けてください以下:

$arr = str_split_unicode($string); 

問題がstr_split()機能に関係ない

function str_split_unicode($str, $l = 0) { 
if ($l > 0) { 
    $ret = array(); 
    $len = mb_strlen($str, "UTF-8"); 
    for ($i = 0; $i < $len; $i += $l) { 
     $ret[] = mb_substr($str, $i, $l, "UTF-8"); 
    } 
    return $ret; 
} 
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY); 

}

1

この新しいコールを処理するための関数を作成します。ファイルの文字エンコーディングをUnicodeの選択肢の1つに変更する必要があります(UTF-8が最適です)。使用している文字は、ANSIおよびASCIIエンコーディングによってサポートされていません。

+0

メタはというメタタグを使用していますか? – efns

+0

また、ファイルエンコーディングのエンコーディングをUTF-8に設定する必要があります。メタタグだけでは問題は解決しません。 –

関連する問題