0

PHP 5.6 を実行している制限付きサーバーで PHPExcel を使用しています。

CSV および Excel 出力に含めようとしている日本語の文字がいくつかあります。HTMLまたはPDFでも同じ出力が得られる可能性があるため、PHPExcelを使用してすべてのデータを構築し、要求に応じてライターを変更しています。

私はExcelでCSVエクスポートを正常に開くことができましたが$objWriter->setUseBOM(true)、Excelファイルとしてエクスポートすると、日本語の文字が次のようなナンセンスに置き換えられます。

éÂÂä¿¡ãÂÂãÂÂãÂÂIDã¡ã¼ã«ã«IDã®è¨Âè¼ÂãÂÂãªãÂÂ

私が読んだことから、私の最善の策は文字列を UTF-16LE に変換することですが、アクセスできないmb_stringiconv、これを解決する方法を他に見つけるのに苦労しています。Excel2007 でも同じ問題が発生するのではないかと思いましたが、PCLZip を使用するためのphp_zipアクセス権がありません。zlib私はめちゃくちゃだと思います。

Excelでこれらの文字を正しく解釈する方法を知っている人はいますか?

4

1 に答える 1

0

私の場合、問題はサーバーがないmb_convert_encodingiconv、サーバー上にあることです。これらがないと、UTF-8 から Biff8 へのエンコード (「参考文献」を参照PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong) が正しく行われません。

この場合PHPExcel_Shared_String::ConvertEncoding、元の文字を返すだけで、Biff8 では意味がありません。そのため、問題が発生します。

スタンドアロンのコンバーターを作成する必要があります。これは可能ですが、単純に CSV にフォールバックできるこの特定の状況では過剰です。他の誰かがこの問題を抱えている場合は、まず存在を確認するmb_convert_encodingiconv、可能であればそれらをインストールします。

于 2017-06-07T09:12:21.397 に答える