Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Codierung für fwrite

Frage Entwicklung PHP

Mitglied: 117643

117643 (Level 2)

12.09.2014, aktualisiert 23.09.2014, 1192 Aufrufe, 5 Kommentare

Guten Mittag miteinader,
ich habe ein Wordpress-Plugin für Woocommerce geschrieben welches eine CSV mit erzeugen soll, dies klappt auch, ich kann die Datei wunderbar mit einem Editor öffnen und sehe alle Umlaute korrekt.

Leider sieht das Buchhaltungsprogramm die Umlaute aber anders und kommt nicht mit der Codierung zurecht. Aus einem einfach ä wird nun ein ä

Die BuHa ist eine normale Windows-Anwendung und erwartet ASCII.
Die interne iconv Kodierung steht auf ISO-8859-1, ich habe keinen root-zugriff auf den Server.


Wie bekomme ich dies geschickt ans laufen?


Grüße Michael
Mitglied: LordGurke
LÖSUNG 13.09.2014, aktualisiert 23.09.2014
Wenn du die Daten in die Datei schreibst, müsstest du sie dann vorher am Besten durch iconv() schicken.
Ggf. wäre der "//TRANSLIT"-Teil bei der Zielkodierung noch halbwegs wichtig, um nicht in ISO darstellbare Zeichen zu umschreiben.
Bitte warten ..
Mitglied: 117643
16.09.2014 um 08:59 Uhr
$fp = fopen(ABSPATH.'bestellungen/test.txt', "w+");
fwrite($fp, iconv(iconv_get_encoding("output_encoding"), 'ASCII//TRANSLIT', 'äüö'));
fclose($fp);

erzeugt leider nur folgendes:
??? 1/4 ??
Bitte warten ..
Mitglied: LordGurke
17.09.2014 um 00:39 Uhr
In welchem Encoding sind denn die PHP-Dateien selbst?
Eventuell hilft es dir ja, das Quell-Encoding hardcoded anzugeben oder alternativ mit mb_detect_encoding() abzufragen (das ist bei UTF-8 zuverlässiger).
Bitte warten ..
Mitglied: 117643
17.09.2014 um 09:24 Uhr
Zur Info Vorab, ich arbeite mit Notepad++

Wenn ich die Datei als UTF-8 speicher erhalte ich: ??? 1/4 ??

Wenn ich die Datei als ASCII speicher erhalte ich:
???

Hast du sonst ein beispielcode / datei mit der ich testen könnte?

Hab nun das hier:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$ursprung = 'äöü';

echo "Ursprungscodierung: ". mb_detect_encoding($ursprung);

$string = iconv(mb_detect_encoding($ursprung), 'ASCII//TRANSLIT', $ursprung);

echo "Nach Iconv: ". mb_detect_encoding($string);

$fp = fopen('test.txt', "w+");
fwrite($fp, $string );
fclose($fp);
Bitte warten ..
Mitglied: 117643
23.09.2014, aktualisiert um 10:50 Uhr
So irgendwie war das Erkennen der benutzten Codierung wohl das Problem... habe über die Konsole mit ein paar linux-Tools die Dateien untersucht die ich erzeuge bzw. die mir vorgebene werden. Benutze nun icov mit festen Paratemern und das klappt wunderbar Danke
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Google Android
gelöst Android Programmierung Problem mit Codierung von Umlauten (7)

Frage von lordzwieback zum Thema Google Android ...

Visual Studio
gelöst Visual Studio - Codierung dauerhaft speichern (5)

Frage von pelzfrucht zum Thema Visual Studio ...

Batch & Shell
gelöst txt mit UTF-8 Codierung per batch in ANSI Codierung umwandeln (3)

Frage von pdiddo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...