(1)の問題についてはロケールの問題ではないでしょうか。
手元の環境で再現できました。
setlocale(LC_ALL, 'C');
->(1)の問題発生する
setlocale(LC_ALL, 'ja_JP.UTF-8');
->(1)の問題発生しない
動作環境や発生時の状況など不明なので不確かですが、
Apacheの起動スクリプトに以下記述があるとかでは?
HTTPD_LANG=${HTTPD_LANG-"C"}
setlocale()関数でロケールを正しく設定すれば解決するかと思います。
(2)についてはfgetcsv()関数の仕様と認識していました。
※前後の空白文字は無視される。
ご参考まで。
池田