25

PHP で substr() 関数を使用すると、最後の文字が ë や ö などの特殊な文字の場合、文字列の末尾に疑問符 (疑問符の付いた四角形 - ブラウザーによって異なります) が表示されます。 ...

$introtext = html_entity_decode($item->description, ENT_QUOTES, "UTF-8");
$introtext = substr($introtext, 0, 200);

どうすればこれを逃れることができますか?

4

5 に答える 5

63

文字列にマルチバイト エンコーディング (UTF-8 など) が含まれている場合は、次のmb_substrような問題を回避するためにを使用する必要があります。

$introtext=mb_substr($introtext,0,200);
于 2011-06-06T20:47:00.203 に答える
6

誰かが以前の回答を試してもうまくいかなかった場合:

mb_substr次のように Unicode 名を追加してみてください。

$introtext = mb_substr($introtext, 0, 200, 'utf-8');
于 2015-06-13T17:49:57.320 に答える
5

mb_substrを使用

于 2011-06-06T20:47:10.730 に答える
5

これは、substr がマルチバイト文字で機能しないためです。substr は、おそらくマルチバイト文字を「半分に」カットします。代わりにmb_substrを使用してください。また、ファイルが UTF-8 で保存されていることを確認してください。

$introtext = mb_substr($introtext, 0, 200);
于 2011-06-06T20:48:07.100 に答える