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, 1351 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
Windows 10

Powershell 5 BSOD

(7)

Tipp von agowa338 zum Thema Windows 10 ...

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

Frage von pdiddo zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (2)

Frage von Matzus87 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...