2014-07-21 3 views
0

스웨덴 알파벳 문자스웨덴어 csv 파일 인코딩 문제

AAO

내가 PHP 함수 fgetcsv와 csv 파일을 읽으려고하지만 난 인코딩 문제를 얻고 특수 문자가없는이 포함되어 정확하게 해석된다.

fopen ($ filePath, "r")으로 파일을 열었습니다. 알고있는 PHP의 모든 인코딩을 지정하지 않습니다. 내 응용 프로그램의 다른 모든 인코딩에 관한 잘 작동합니다.

오픈 오피스 스위트에서 대상 CSV 파일을 열면 인코딩을 선택할 수 있습니다. 유니 코드 (UTF-8)를 선택하면 특수 문자를 표시 할 수 없습니다. 일부 ISO-8859를 선택하면 글자가 올바르게 표시됩니다.

전 utf8_decode, utf8_encode, mb_convert_encoding, iconv 및 setlocale을 가지고 놀았습니다.

인코딩이 무엇인지는 알고 있지만이 경우를 이해하지 못합니다. 해결책과 여기서 무슨 일이 일어나고 있는지에 대한 좋은 설명이 있으면 좋을 것입니다. 내 파일 추측

은 ISO-8859- * 내가 제대로 파일을 구문 분석 할 수 있습니다 그래서 PHP에서 그 내용을 활용할 수있는 방법

인코딩입니까? 당신이 할 수

답변

1
Try this 
    Å 

    Å 

    å 

    å 

    Ä 

    Ä 

    ä 

    ä 

    Ö 

    Ö 

    ö 

    ö 
1

htmlentities를 사용하여 예를 들어, 파일을 인코딩.

는 예를 들어, 저 작은 코드 난

title_orders,Beställningar 
title_monthly_sales,Månadsförsäljning 
title_settings,Inställningar 
Swedish.csv

title_orders;Beställningar 
title_monthly_sales;Månadsförsäljning 
title_settings;Inställningar 

file_encoded.csv

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); 

부호화

및 비교하려면

$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); 
+0

PHP에서 결과 file_encoded.csv를 사용하여 파일을 구문 분석하고 artikelbenämning과 같은 문자열과 비교하려면 어떻게해야합니까? 이것은 Artikelben & iuml이되고& iquest & frac12 mning이므로 artikelbenäming과 동일하지 않습니다. 나는 또한 ";"때문에 문제를 겪는다. 당신의 도움을 주셔서 감사합니다! – user264230

+0

아마 이것과 관련이 있습니까? http://stackoverflow.com/questions/3637770/why-fgetcsv-drops-some-characters-with-diacritics – user264230

+0

원본 csv 파일의 구분 기호는 무엇입니까? 만약 ";" htmlentities 때문에, 문제가있을 것입니다, 나는 그것을 보지 못했습니다 ... – kraysak