php - 使用 PHP fgetcsv ( 字符集问题) 无法正确呈现字符数据

  显示原文与译文双语对照的内容

文件 csv

带有结果的 页面

代码:


<?php
$file_name = 'test.csv';

if (($handle_f = fopen($file_name,"r"))!== FALSE)
{

while ( ($data_f = fgetcsv($handle_f, 20000,";"))!== FALSE) {
echo Name - '.$data_f[0].', City - '.$data_f[1].', Adress - '.$data_f[2].', Site - '.$data_f[3].'<br>';
}

fclose($handle_f);
} else {$err = 1; echo"File not open";}
?>

例如在结果中,我将得到下一个( 例如第 2行):


Name - Сибвез, City - Абакан, Adress - ул. Советская, 44, Site - www.sibvez.ru
Name - Быттехника, City - Абакан, Adress - ул. Дружбы народов, д. 52, Site - www.sibvez.ru

但现在在结果前 2行中:


Name -, City -, Adress -. Советская, 44, Site - www.sibvez.ru
Name -, City -, Adress -. Дружбы народов, д. 52, Site - http://www.bytech.ru

请告诉我为什么cannt会得到正确的结果?

时间: 作者:

需要设置正确的区域设置使用 setlocale(LC_ALL,'ru_RU.CP1251');

完整代码:


setlocale(LC_ALL, 'ru_RU.CP1251');
echo strtoupper('SERVER USE LOCALE ru_RU.CP1251');

$file_name = 'test.csv';

if (($handle_f = fopen($file_name,"r"))!== FALSE)
{

while ( ($data_f = fgetcsv($handle_f, 20000,";"))!== FALSE) {
echo 'Name - '.$data_f[0].', City - '.$data_f[1].', Adress - '.$data_f[2].', Site - '.$data_f[3].'<br>';
}

fclose($handle_f);
} else {$err = 1; echo"File not open";}

setlocale的引用:http://us2.php.net/manual/en/function.setlocale.php

作者:
...