ottscho
Goto Top

Fopen und Umlaute

Hi,

ich importiere mit einem PHP Script Datensätze in ein Onlineshop.

Die original Daten stehen in einer CSV mit Seminkolon getrennt und können, wenn ich diese in einem Test-Editor lese im Klartext gelesen werden.
Hier werden alle Sonderzeiche korret dargestellt. Sogar 8½ etc.

Öffne ich die Datei z.B. im Excel, so sieht hier auch noch alles super aus.

Lese ich aber die Datei mit fopen ein, so habe ich in den Variablen z.B. Statt "Schnürer Comfort" dies "Schnürer Comfort" und statt.

Was mache ich falsch, bzw. wie kann ich den Fehler korrigieren?

Hier ein auszug aus dem Code:

$row = 1; // Anzahl der Arrays
			$handle = fopen ("transfer/Exportwebshop.csv","r"); // Datei zum Lesen öffnen  
			// Die erste Zeile mit den Spaltennamen auslesen
			$data = fgetcsv ($handle, 100000, ";");  
			if(is_array($data)) {
			   foreach($data AS $cellNr => $cellName) {
				   $cellNamesArray[$cellNr] = $cellName;
			   }
			}
			$return=false;		
			while ( ($data = fgetcsv ($handle, 100000, ";")) !== FALSE ) { // Daten werden aus der Datei  
				$num = count ($data); // Felder im Array $data
				//var_dump('row: '.$row); 
				//var_dump('offset: '.$offset); 
				//var_dump('step: '.$step); 
				
				if ($row <= $offset) {
					$row++; // Anzahl der Arrays wird
					continue;
				}
				if ($row > $offset+$step) {	

					$count = 0;
					for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder des Arrays auszugeben
						$feld[$cellNamesArray[$c]] = $data[$c];				
						$count++;	
					}

					if ( $feld['shop_nr'] == 1) {  
						self::$row = $row;
						$return=true;
						break;
					}
				}
				$row++; // Anzahl der Arrays wird
				
				$count = 0;
				for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder des Arrays auszugeben
					$feld[$cellNamesArray[$c]] = $data[$c];				
					$count++;	
				}
				
				
				var_dump($feld);
				exit;
}


Vielen Dank,

Grüße
Ottscho

Content-ID: 180036

Url: https://administrator.de/contentid/180036

Ausgedruckt am: 25.11.2024 um 15:11 Uhr

ottscho
ottscho 04.02.2012 um 09:18:08 Uhr
Goto Top
konnte es lösen.

utf8_decode()
nxclass
nxclass 06.02.2012 um 23:34:13 Uhr
Goto Top
Also hast Du nur eine UTF-8 codierte CSV Datei eingelesen und die Daten ISO codiert ausgegeben (bzw. anzeigen lassen)

Evtl. hätte auch schon ein
header( 'Content-Type: text/html; charset=UTF-8' );  
am Anfang des Scripts gereicht.