0

PHP (5.3.5、Ubuntu) で Web サイトを開発していますが、すべてのコンテンツはスペイン語です。指定されたスペースにテキストが収まらない場合、テキストをカットしたい。これを行いたいphpファイルに次のメタタグがあります。<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />.

テキストは、文字セットがlatin1で照合がlatin1_spanish_ciである MySQL データベースから取得されます。mb_substr() 関数でテキストを切り取ろうとしています。しかし、それは正しく機能していません。たとえば、Short PsicodélicoShort Psicodéliにカットしたい場合、関数は次のようになります。

mb_substr('Short Psicodélico', 0, 15, 'ISO-8859-1');

しかし、結果は次のようなものです:短い Psicod&ea . 分音記号付きの e は&eaに変換されますが、その理由はわかりません。文字エンコーディングと関係があると思いますが、正確な方法はわかりません。この関数を使用しない場合、文字は本来の姿で表示されますが、Short Psicod&eaの代わりに Short Psicodélicoが表示されます。

4

1 に答える 1

2

テキストはデータベースで としてエンコードされます"Short Psicod&eacute;lico"データベースをスクラブしてエンコードを削除し、入力ルーチンを修正して、テキストがエンコードされたデータベースに保存されないようにする必要があります。

于 2011-11-09T19:41:18.530 に答える