質問

私は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は、マルチバイト機能のための恒久的なエンコーディングを設定するための)お好みで交換することができる。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top