[PHP-users 21496]Re: 内部エンコードUTF8のファイルからUTF-16のCSVファイルを読み込む
KOYAMA Tetsuji
koyama @ hoge.org
2004年 4月 27日 (火) 22:26:59 JST
小山です。
At Tue, 27 Apr 2004 10:16:49 +0000,
aiko wrote:
> UTF-8で書かれているPHPのソースファイルから、
> UTF-16のCSVファイルを読み込みたいのですが、
> 下記ソースでテストしましたが、値が取得できません。
UTF-16 には \0 が含まれますので、binary safe ではない fgetcsv ではちゃ
んと読めないでしょうねぇ。fgetcsv を使うのをあきらめて、自分で解析する
んじゃ駄目でしょうか?
// file をオープンして
$fp = fopen('utf16.csv', 'r');
while (!feof($fp)) {
// 1行読み込み
$line = fgets($fp);
// 文字コードを変換して
$line = mb_convert_encoding($line, 'UTF-8', 'UTF-16');
// 自分で , で区切る
$data = explode(',', $line);
// $data はご自由に利用して下さい
}
上記は " の対応をしていませんが、岸川さんが出されたサンプルデータ程度
なら動作してくれます。
# 場合によっては BOM を読み飛ばさないといけないかな?
--
小山 哲志@ビート・クラフト
koyama @ beatcraft.com
koyama @ hoge.org
PHP-users メーリングリストの案内