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

Csv (und andere Dateien) in charset utf-8 umwandeln (batch)

Frage Entwicklung Batch & Shell

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

22.02.2015, aktualisiert 22:31 Uhr, 1431 Aufrufe, 4 Kommentare

Guten Abend,

ich hänge seit Tagen an einem Problem:
Eine csv und php Datei möchte ich, wie der Titel sagt, verlässlich in charset=utf-8 umwandeln. Mit Notepad++ habe ich das eigentlich schon erledigt, im Browser werden in den Dateien ü,äö und ß aber immer noch als � angezeigt. Da ständig neue csv-Dateien anfallen, möchte ich die natürlich automatisch ummodeln.
Also, zwei Fragen:
Wie kann ich die Umwandlung sicher bewerkstelligen und wie automatisieren?

Habe hier einen Ansatz gefunden, der aber leider überhaupt nicht geht bei mir:

iconv -f ISO-8859-1 -t utf-8 foo > bar

Kann mir jemand helfen?
gruenlinge

Mitglied: rubberman
LÖSUNG 22.02.2015, aktualisiert um 22:31 Uhr
Hallo OKIDOKI,

mit Batch geht das, allerdings nicht ohne temporäre Dateien.
01.
@echo off &setlocal 
02.
:: Zieldatei spezifizieren 
03.
set "targetfile=test.txt" 
04.
 
05.
:: temporäre Dateien spezifizieren 
06.
set "utf16file=%temp%\tmp16.utf~" 
07.
set "utf8file=%temp%\tmp8.utf~" 
08.
 
09.
:: derzeitige Codepage sichern 
10.
for /f "tokens=2 delims=:" %%i in ('chcp') do set /a "oemcp=%%~ni" 
11.
 
12.
:: zu Windows-1252 wechseln 
13.
>nul chcp 1252 
14.
 
15.
:: Byte Order Marks schreiben 
16.
<nul >"%utf16file%" set /p "=ÿþ" 
17.
<nul >"%utf8file%" set /p "=" 
18.
 
19.
:: Konvertierung zu UTF-16 LE 
20.
>>"%utf16file%" cmd /u /q /d /c type "%targetfile%" 
21.
 
22.
:: Konvertierung zu UTF-8 
23.
>nul chcp 65001 
24.
>>"%utf8file%" cmd /a /q /d /c type "%utf16file%" 
25.
 
26.
>nul chcp %oemcp% 
27.
 
28.
:: UTF-16 Datei löschen 
29.
del "%utf16file%" 
30.
:: Zieldatei durch UTF-8 Datei ersetzen 
31.
>nul move /y "%utf8file%" "%targetfile%"
Grüße
rubberman
Bitte warten ..
Mitglied: 114757
LÖSUNG 22.02.2015, aktualisiert um 22:31 Uhr
Moin,
oder mit Hilfe von Powershell in Batch
01.
powershell -ExecutionPolicy ByPass -Command "&{gc 'c:\data_in.csv' | set-content 'c:\data_out.csv' -Encoding UTF8}"
oder wenns mehrere Dateien auf einmal sein sollen
01.
powershell -ExecutionPolicy ByPass -Command "&{gci 'c:\daten\*.csv' | %{ (gc $_.Fullname) | set-content $_.Fullname  -Encoding UTF8}}"
Gruß jodel32
Bitte warten ..
Mitglied: OKIDOKI
22.02.2015 um 21:51 Uhr
Hallo rubberman,
hallo jodel32,

werde beide Varianten ausfürhlich probieren! (Jetzt ist erst mal Bett angesagt ).

Schon mal Vorab riesigen Dank!
Gruenlinge
Bitte warten ..
Mitglied: OKIDOKI
22.02.2015 um 22:14 Uhr
... ich habs eben doch noch einmal ausprobiert

Beide Varianten gehen bei mir, wobei ich mich für die rubbermann-Variante entscheiden werde. Grund: Diese kann ich in meinen vorhandenen Batchablauf noch einfacher integrieren. Allerdings habe ich das Gefühl, dass Powershell deutlich leistungsfähiger ist - in batch finde ich zumindest viele Fehler und fühle mich da sicherer...

Ich danke euch für eure prima Hilfe!
gruenlinge
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Dateien aus CSV mit Batch suchen (5)

Frage von joes1609 zum Thema Batch & Shell ...

Batch & Shell
Per Batch in Aufgabeplanung XLS in CSV umwandeln (21)

Frage von dtbsys zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (29)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
gelöst Welches OS für Firmengeräte? (20)

Frage von MarkusVH zum Thema Windows 10 ...

Netzwerke
Abisolierwerkzeug (18)

Frage von SarekHL zum Thema Netzwerke ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (17)

Frage von bogi1102 zum Thema Exchange Server ...