Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Codierung für fwrite

Frage Entwicklung PHP

Mitglied: 117643

117643 (Level 2)

12.09.2014, aktualisiert 23.09.2014, 1247 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 ..
Ähnliche Inhalte
Microsoft Office
Sonderzeichen bei Terminen - Office 2016

Frage von Martinaaa zum Thema Microsoft Office ...

Neue Wissensbeiträge
Viren und Trojaner

Link: Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Switche und Hubs
gelöst VLAN für Gäste WLAN einrichten über FritzBox und Switch (10)

Frage von Elo-14 zum Thema Switche und Hubs ...

Windows Server
Frage zu Server Rack (10)

Frage von rainergugus zum Thema Windows Server ...