発音区別符号とmb_substr通報
質問
私はmb_substr
機能を使って発音区別記号付きのUnicode文字列をスライスしていますが、私はシンプルなsubstr
機能を使用するのと同じようにそれが動作します。これは、質問マークされたダイヤモンドを表示半分にUnicode文字を分割します。
例えばます。
echo mb_substr('ááááá', 0, 5); //Displays áá�
何が間違っているかもしれない?
解決
私は
mb_substr
の最後のパラメータとしてエンコーディングを指定しない場合は、私は同じ問題を抱えている:それはデフォルト、少なくとも私のサーバー上で、ISO-8859-1
へ。
私はUTF-8
し、適切にエンコーディングを設定している場合しかし、それはOKに動作します:
echo mb_substr('ááááá', 0, 5, 'UTF-8');
は、ブラウザの右の表示を取得します。
ááááá
参照してください。 mb_substr
のの(引用、強調鉱山)の
string mb_substr ( string $str , int $start [,
int $length [, string $encoding ]] )
encoding
パラメータであります 文字エンコーディング。それがある場合の 省略し、内部文字 エンコーディング値は、を使用されます。
他のヒント
私は同じ問題を抱えていたし、上記の答えはあまりにも私を助けました。 php.ini
を設定するか、 ini_set()
に使用のほかに、それはまた、(mb_internal_encoding('utf-8');
を使用するのを助けることができますutf-8
は、マルチバイト機能のための恒久的なエンコーディングを設定するための)お好みで交換することができる。
所属していません StackOverflow