Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mit PHP ANSI Dateien schreiben

Frage Entwicklung PHP

Mitglied: Niranda

Niranda (Level 1) - Jetzt verbinden

21.04.2011, aktualisiert 08:50 Uhr, 4914 Aufrufe, 1 Kommentar

Mit PHP aus UTF8-Code eine ANSI-Datei schreiben - Umlaute sind nicht korrekt.

Hallo,

ich habe ein ziemlich verwirrendes Problem.
Um das ganze mal zu verdeutlichen:

Es gibt eine Perlschnittstelle. Rufe ich das Perlscript über den Browser mit den GET-Parametern "?id=12345&splitter=<->" auf, so werden mir im Browser die Datensätze aus einer Datenbank zur ID "12345" angezeigt:
Spaltenname1<->Wert1
Spaltenname2<->Wert2
Spaltenname3<->Wert3
... usw ...

Mit PHP rufe ich dieses Perlscript auf und lese die daraus entstandene Seite aus - erhalte dabei (wahrscheinlich) UTF8-Basierte Werte, die ich in entsprechende Variablen/Arrays abspeichere.
Nun wird mit PHP eine Vorlage (Textdatei) im ANSI-Format eingelesen und Zeilenweise komplett in ein Array gespeichert.
Dieses Array wird dann mit den Werten (welche vom Perl-Script kamen) bearbeitet (einige Elemente kommen hinzu, andere Elemente werden nur leicht abgeändert).
Das daraus entstandene "neue" Array wird dann in eine neue Textdatei geschrieben - wieder entspricht ein Element einer Zeile. Diese finale Datei muss ANSI-Codiert sein!

Soweit funktioniert das alles auch wunderbar - allerdings werden Umlaute wie "Ü" und "ö" wie folgt in der finalen Datei dargestellt:
�

Egal welcher Umlaut, es kommt immer statt des Umlautes "�" heraus.
Die Umlaute in der eingelesenen Vorlage bleiben aber vorhanden. Nur die Werte aus der Datenbank, welche hinzugefügt werden, weisen diese Problematik auf.

Problemlösung:
Da habe ich versucht, alle Werte, welche aus der Datenbank kommen, durch einen (PHP)-Konverter zu schubsen mit den PHP-Hauseigenen Funktionen "UTF8_encode" und dem Gegenstück "UTF8_decode" - ohne Erfolg.
Dann habe ich "htmlentities" benutzt, um das ganze HTML-Kompatibel zu formatieren und dieses mit "html_entity_decode" im Windows1252-Format wieder rückgängig gemacht - also nur ein anderer Weg, um:
ä -in-> &auml; -in-> ä
zu konvertieren:

01.
function encode_conv($var, $enc_out = "Windows-1252", $enc_in = "utf-8") { 
02.
    $var = htmlentities($var, ENT_QUOTES, $enc_in); 
03.
    $var = html_entity_decode($var, ENT_QUOTES , $enc_out); 
04.
	 
05.
    return $var
06.
}
Das Problem besteht fort - ich finde einfach keine Lösung, vllt jemand von euch?
Ich wäre zu tiefst dankbar!

Grüße,
Nira

PS:
Konvertiere ich die aus der Datenbank kommenden Werte direkt im Perl-Script mit UTF8-encode (Encode-Modul), so glaube ich "wahren" UTF8 Strings zu erhalten... diese aber wieder zurückzukonvertieren (decode) oder nochmals zu codieren (encode) mit jeweils UTF8 bringt wieder irgendwelchen Blödsinn heraus...
Mitglied: dog
21.04.2011 um 12:54 Uhr
erhalte dabei (wahrscheinlich) UTF8-Basierte Werte,

Wahrscheinlich hilft nicht weiter.
Nimm wget oder curl und speicher die Seite in eine Datei.
Dann öffnest du das in Notepad++ und gehst die Kodierung so lange durch bis die Umlaute sichtbar sind (natürlich gibt es sich überlagernde Zeichensätze).
Anstatt utf8_decode o.Ä. benutzt du dann die iconv Funktion.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mit Batch eine Datei mit der Kodierung ANSI erstellen?
Frage von DrMarksmanBatch & Shell6 Kommentare

Guten Tag, mal wieder eine Frage von mir Ich versuche im Moment den Inhalt eines Textdokuments einfach zu ändern. ...

PHP
Druckbefehl in PHP schreiben
Frage von wescraven07PHP16 Kommentare

Hallo Leude, folgende Frage: Ich habe einen Server bei mir im Netzwerk, der verschiedene Produktdaten hält. Das Ganze ist ...

Ubuntu
PHP-Version mit Bash in Variable schreiben?
gelöst Frage von StefanKittelUbuntu11 Kommentare

Hallo, hat Jemand ein fertiges Skript um die aktuelle PHP-Version in eine Variable in Bash zu schreiben? Die Ausgaben ...

Debian
Schreib-Berechtigung für PHP-Anwendung unter Debian
gelöst Frage von itebobDebian6 Kommentare

Hallo, ich möchte mit so einer Datei schreiben.php: eine neue Datei erstellen. Das Beispiel oben funktioniert auf dem Webspace ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 1 StundeMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 14 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 21 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 22 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...