[PHP-users 21495]内部エンコードUTF8のファイルからUTF-16のCSVファイルを読み込む

aiko vvv_aiko_vvv @ hotmail.com
2004年 4月 27日 (火) 10:16:49 JST


いつもお世話になっております。
岸川と申します。

UTF-8で書かれているPHPのソースファイルから、
UTF-16のCSVファイルを読み込みたいのですが、
下記ソースでテストしましたが、値が取得できません。
根本的にやり方が間違っているのでしょうか。
UTF-8の場合は、正常に動作しています。

どなたか、ご教示下さい。
よろしくお願いします。

PHP Version 4.3.4


'./configure' '--with-thttpd=../thttpd-2.21b' '--enable-mbstring' 
'--enable-mbstr-enc-trans' '--enable-mbregex' '--enable-track-vars' 
'--enable-trans-sid' '--enable-sockets' '--enable-sigchild' 
'--with-config-file-path=/usr/local/lib/php.ini' '--enable-libgcc' 
'--enable-php-streams' '--enable-exif' '--with-hyperwave' '--with-ncures' 
'--with-tsrm-pthreads' '--with-zlib' '--enable-shmop' '--enable-sysvsem' 
'--enable-sysvshm' '--enable-shared' '--enable-static' 
'--enable-fast-install' '--without-gd' '--without-mysql' 



// test.php ( UTF-8で記入 )
//===========================
<?php
// ファイル読み込み
$ret=testRead( $data , $error );

if(!$ret) {
    print $error ."<br>";
    exit();
}

// 表示
$icnt=count($data);
for ( $i=0; $i<$icnt; $i++ ) {
    print "[$i] " ;
    $jcnt=count($data[$i]);
    for ( $j=0; $j<$jcnt; $j++ ) {
        print $data[$i][$j] . "     ";
    }
    print "<br>";
}

// 終了
exit(); 

//
// ファイル読み込み関数
//
function testRead( &$data , &$error )
{
//    $fn="./utf8.csv";
    $fn="./utf16.csv";

    // メッセージ内容を読み込む
    if( !$fp = @fopen( $fn,"r") ) {
        $error =" file open Error" ;
        return FALSE ;
    }

    $row = 0 ;

    // $tok=",";
    $tok=mb_convert_encoding( "," , "UTF-16" , "UTF-8");

    while( $forms = @fgetcsv( $fp,4000,$tok) ){
        $num = count($forms);
        for($c=0; $c<$num; $c++ ) {
         // $data[$row][$c] = $forms[$c];
          $data[$row][$c] = mb_convert_encoding($forms[$c] , "UTF-8" , 
"UTF-16") ;
        }
        $row++;
    }

    @fclose($fp);
    return TRUE ;
}
?>

//
// utf16.csv ( UTF-16で記入 )
//===========================
TEST,ああああああ,いいいいいい,テストです。
TEST,ああああああ,いいいいいい,テストです。
TEST,ああああああ,いいいいいい,テストです。

_________________________________________________________________
メッセンジャーで総額1億円プレゼント! http://im.msn.co.jp/home.htm 



PHP-users メーリングリストの案内