5

tFPDF を使用して PDF を生成しています。php ファイルは UTF-8 でエンコードされています。©たとえば、著作権記号としてpdfに出力したい。

iconv私は、、を試しましhtml_entity_decodehtmlspecialchars_decode。デコードしようとしている文字列を別のファイルにハードコードしてデコードすると、期待どおりに機能します。そのため、何らかの理由でPDFに出力されていません。出力バッファリングを試しました。私はDejaVuSansCondensed.ttf(真のタイプのフォント)を使用しています。

tFPDF へのリンク: http://fpdf.org/en/script/script92.php

私はアイデアがありません。二重のデコードを試み、どこでもチェックして、他の場所でエンコードされていないことを確認しました。

4

5 に答える 5

12

あなたはこれを必要とします:

iconv('UTF-8', 'windows-1252', html_entity_decode($str));

html_entity_decodeは、html エンティティをデコードします。しかし、何らかの理由で、それをiconvで utf8 に変換する必要があります。これは fpdf-secret だと思います... 通常のブラウザ ビューでは正しく表示されます。

于 2013-05-20T10:28:35.923 に答える
0

HTML エンティティ コードから対応する UTF-8 への自動変換が利用できないことは確かです。このような場合、手動の文字列置換に頼っています。たとえば、次のようになります。

$strOut = str_replace( "©", "\xc2\xa9", $strIn );
于 2012-05-15T03:38:20.233 に答える
0

このコードで問題を修正しました:

$str = utf8_decode($str);
$str = html_entity_decode($str);
$str =  iconv('UTF-8', 'windows-1252',$str);
于 2016-05-02T14:31:58.243 に答える