0

imagettftext を使用して PHP でテキストを生成しています。テキストは mysql データベースから取得されています。一部の文字は、フォントの文字マップにあり、データベースに表示されているにもかかわらず、レンダリングされたテキストに表示されません。たとえば、m-ダッシュ (—) やスマートクォート/アポストロフィ (""') などです。

文字は表示されないか、疑問符に置き換えられます。

これはエンコーディングに関係していると思われますが、どこから始めればよいかを知るにはエンコーディングについて十分に知りません。どんな助けでも大歓迎です。

4

1 に答える 1

0

htmlentityencode関数に渡す前にテキストで使用してみてください。

UTF-8 エンコーディングのテキスト文字列。

€フォント内の 127 桁目以降の文字にアクセスするために、10 進数字参照 (形式: ) を含めることができます。16 進形式 ( など©) がサポートされています。UTF-8 エンコーディングの文字列は直接渡すことができます。

などの名前付きエンティティ©はサポートされていません。html_entity_decode() を使用して、これらの名前付きエンティティを UTF-8 文字列にデコードすることを検討してください (html_entity_decode() は、PHP 5.0.0 でこれをサポートしています)。

フォントでサポートされていない文字が文字列で使用されている場合、その文字は中空の長方形に置き換えられます。

ソース: http://www.php.net/manual/en/function.imagettftext.php

于 2012-06-15T16:14:51.617 に答える