瑞典字母包含字母
AAO
我尝试使用PHP函数fgetcsv读取csv文件,但是我遇到了编码问题并且没有正确解释特殊字符。
我用fopen($ filePath,“r”)打开文件,我没有说明我知道的PHP中的任何编码。我的应用程序中的其他所有内容在编码方面都可以正常工作。
当我在开放式办公套件中打开目标csv文件时,我可以选择编码。如果我选择Unicode(UTF-8),则无法显示特殊字符。如果我选择一些ISO-8859,则会正确显示字母。
我一直在玩utf8_decode,utf8_encode,mb_convert_encoding,iconv和setlocale而没有运气。
我知道编码是什么,但我不明白这种情况。对于解决方案和对此处发生的事情的一个很好的解释,这将是很好的。
我猜我的文件是ISO-8859- *编码
如何正确解析文件,以便我可以使用其中的内容 PHP?
答案 0 :(得分:1)
Try this
Å
Å
å
å
Ä
Ä
ä
ä
Ö
Ö
ö
ö
答案 1 :(得分:1)
您可以对文件进行编码,例如使用htmlentities。
例如,使用这个litle代码,我将瑞典文件编码为ISO-8859-1,
$file = fopen("translations-sv.csv", "r");
$new_file = fopen("file_encoded.csv", "w");
while(!feof($file)) {
$line=fgets($file);
$line = str_replace(";", ",",$line); //replace all ';' to ','
$encoded_line=htmlentities($line,ENT_QUOTES,'ISO-8859-1');
fwrite($new_file, $encoded_line);
}
fclose($file);
fclose($new_file);
Swedish.csv
title_orders;Beställningar
title_monthly_sales;Månadsförsäljning
title_settings;Inställningar
file_encoded.csv
title_orders,Beställningar
title_monthly_sales,Månadsförsäljning
title_settings,Inställningar
和,比较,
$new_file = fopen("file_encoded.csv", "r");
$word_to_find="Orderslutförande";
while (!feof($new_file) ) {
$line_of_text = fgetcsv($new_file, 1024,",");
if($word_to_find==$line_of_text[1])
echo $line_of_text[1]." is the same to $word_to_find<br>";
}
fclose($new_file);