1

fgetsmy_file.phpのコンテンツを使用して my_file.php ファイルからコンテンツを取得しています。

"Overte svuj úcet";

しかし、取得してprint_rブラウザが表示された後

"Ověřte svůj úÄet"

しかし、「Overte svuj úcet」とエコーすると、ブラウザは正しい出力を表示します

"Overte svuj úcet";

実際には、さまざまな言語のcsvファイルを生成したいのですが、設定charset='utf-8'しましたが成功しませんでした。グーグルでも解決策が見つかりませんでした。

4

2 に答える 2

2

あなたが持っているのは、単純なエンコーディングの不一致です。データはエンコーディングAにありますが、ブラウザはエンコーディングBとしてデータを読み取ろうとします。fgetsエンコーディングには何もしません。ファイルから生のバイトを読み取るだけで、それ以上でもそれ以下でもありません。データもトランスコードしていない場合は、テキスト自体に問題はありません。

これは、データを誤って解釈しているブラウザを離れるだけです。常に行う必要があるのは、エンコーディングを指定するHTTPヘッダーを出力することです。

header('Content-Type: text/html; charset=utf-8');

デフォルトでこのヘッダーを出力するようにWebサーバーを構成することもできます。HTML<meta>タグをUTF-8を示すように設定している可能性がありますが、そのタグの前にデータを出力している可能性があります。

いずれにせよ、HTTPヘッダーが実際のデータのエンコードを示していることを確認してください。

于 2012-11-24T11:14:52.793 に答える
1

長い検索の後、私はそれを見つけました、そしてこれは私の問題を解決しました

https://github.com/PHPOffice/PHPExcel/downloads

于 2012-11-29T08:34:30.583 に答える