昨日、CSVファイルを処理するための小さなプログラムをPHPを使って書きました。ローカルサーバーと21サーバーの両方で正常に処理されました
しかし、夜にそれを238サーバーに置いた後、プログラムが異常に処理していることがわかりました。そして一部のデータが欠落していました。
例外を処理した後、欠落しているデータはすべて中国語であることが判明しました。
最初は、ファイルまたは文字列のエンコードの問題だと思いました
notepad++を使用してCSVファイルをutf-8に変換した後も、問題は依然として存在します
その後、
<span style="font-size:14px;">$date = mb_detect_encoding($content , array('UTF-8','GBK','LATIN1','BIG5')) ; $content = iconv($date, "utf-8", $content);</span>はまだ失敗しました問題を解決するために
その後、Baidu を少し実行して
したところ、CSV ファイルを処理する前にコード行を追加することがわかりました: setlocale(LC_ALL,NULL)
setlocale() 関数は地域情報を設定します(地域情報)。
地域情報とは、地理的エリアの言語、通貨、時間、その他の情報です。
この関数は現在のロケール設定を返します。失敗した場合は false を返します。
注: setlocale() 関数は、現在のスクリプトの地域情報のみを変更します。
ヒント: setlocale(LC_ALL,NULL) を使用して、地域情報をシステムのデフォルトとして設定できます。
将来そのような問題を避けるために、ここに記録してください
上記は、PHP による CSV ---中国語の例外の処理を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人にとって役立つことを願っています。