无法将阿拉伯语文本从csv保存到txt文件

时间:2016-04-24 14:44:37

标签: php json csv

我有一个像这样的csv文件:

region_name, city_name, district_name, ppm_value
منطقة, مدينة , حي , 220.92
...

所有列都是阿拉伯语字符串,ppm_value除外,它是一个浮点数。我试图处理csv文件并以json格式重现它。我试过这个:

$districts = array();
$fd = fopen('data2.csv', 'r');
while ($row = fgetcsv($fd)) {
    $region = $row[0];
    $city = $row[1];
    $district = new stdClass();
    $district->name = "".$row[2];
    $district->ppm = $row[3];
    //also add region and city to $district

    $districts[] = $district;
}

$json1=json_encode($districts);
file_put_contents("text.txt",$json1);

这会产生以下结果:

[{"name":null,"ppm":"220.92","region":null,"city":null}, ... ]

正确保存了浮点数,但阿拉伯字符串全部为空。我甚至试图像这样保存它,但我得到了相同的结果:

$myfile = fopen('text.txt', "w") or die("Unable to open file!");
fwrite($myfile, json_encode($districts));    
fclose($myfile);

1 个答案:

答案 0 :(得分:1)

我几乎不了解php,但问题是您的阿拉伯语文本是否被编码为ASCII?

在将它添加到JSON对象之前尝试将其更改为unicode,您可能知道如何更好地完成此操作...

string utf8_encode ( string $data )