他の多くのPHP開発者が文字エンコードで問題を抱えているように、質問では、データがUTF8として保存および出力されるようにするための手順の概要を説明します。他に何を考慮すべきか、または現在の考え方で変更すべきかについてアドバイスをお願いします。
DEFAULT CHARACTER UTF-8
私のテーブルには次の照合があるmysqlデータベースがありますutf8_general_ci
私はphpスクリプトを使用してRSSフィードからデータを読み取り、そのデータをデータベースごとに保存しています。そのデータを保存する前に、次の手順を実行して、そのデータがUTF-8であるかどうかを確認します。
protected function _convertToUTF8($content) {
$enc = mb_detect_encoding($content);
return mb_convert_encoding($content, "UTF-8", $enc);
}
このデータをウェブページに出力するとき、私はphpでヘッダーを設定しました
header("Content-type: text/html; charset=utf-8");
また、Content-Typeメタタグをutf-8に設定しました
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
これまでのところ、すべてが期待どおりに機能し、面白い文字が出力されず、すべてがスムーズに進んでいますが、このデータを処理するときに他に何かを変更/検討する必要がありますか?
私が今抱えている問題は、このデータをtxtファイル(csv)に出力することです。ファイルを正常に作成したfwrite()を使用していますが、このファイルを渡すサードパーティは、ファイルがUTF-8ではないと言っています。データがUTF-8として出力されているかどうかわかりませんが、どうすれば確認できますか?SSH経由でリモートサーバーにログインし、取得Itâs a
したファイルをvimしたときに取得したファイルを、取得Itâ~@~Ys
したファイルを減らしたときに取得した場合It<E2><80><99>s
。ここで何が欠けていますか?
前もって感謝します!