Character data not rendering correctly using PHP fgetcsv (character set issue)

StackOverflow https://stackoverflow.com/questions/21139680

  •  28-09-2022
  •  | 
  •  

문제

File csv

Page with results

Code:

<?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";}
?>

For example in result i would be get next(for example first 2 rows):

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

But now in results first 2 rows next:

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

Tell me please why i cannt get correctly results?

도움이 되었습니까?

해결책

you are need set correct locale - use setlocale(LC_ALL, 'ru_RU.CP1251');

Full code:

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";}

Reference for setlocale: http://us2.php.net/manual/en/function.setlocale.php

다른 팁

There seems to be a syntax error here:

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>';
}

Should be:

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>';
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top