|
|
MatLab und Encoding - Ein Durcheinander? |
|
MasterQ |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 07.02.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.02.2022, 16:20
Titel: MatLab und Encoding - Ein Durcheinander?
|
|
Moin, ich habe mich gerade im Forum registriert. Somit ein Hallo in die Runde.
Ich krampfe gerade mit dem Encoding von MatLab. Mir scheint es hier nicht gerade aus zu gehen und bin verwirrt.
In der Documentation https://de.mathworks.com/help/matla.....ode-and-ascii-values.html steht, dass intern mit UTF-16 kodiert wird.
Der Editor steht auf UTF-8
und mit Feature('DeclareDefaultCharacterSet') kommt windows-1252
Ja was denn nun?
Ich muss ASCII-Dateien unterschiedlicher Kodierung einlesen die auch noch Umlaute enthalten.
Leider geht es im Datenarchiv ebenfalls durcheinander, so dass ich nicht von einer festen Kodierung der Dateien ausgehen kann.
Hat da jemand einen Tipp, wie das geregelt werden sollte?
Gruß
MQ
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.02.2022, 16:41
Titel:
|
|
Hallo,
Zitat: |
Der Editor steht auf UTF-8 |
Woraus schließt du das?
Zitat: |
Ich muss ASCII-Dateien unterschiedlicher Kodierung einlesen |
Wie bzw. mit welchen Befehlen willst du die Dateien einlesen?
Bei
detectImportOptions
(was die Optionen für readtable, readmatrix etc. erzeugt) kannst du z.B. das Encoding angeben.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
MasterQ |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 07.02.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2022, 11:53
Titel:
|
|
Moin Harald,
Ich glaube das irgendwo gelesen zu haben, dass der Editor in UTF-8 kodiert, finde es aber nicht mehr. Wenn man im Editor ein neues File mit Umlauten erzeugt und abspeichert, dann zeigt mir notepad++ eine Kodierung von UTF-8 an.
Ich mache das im Moment so:
Mich wundert dabei aber, dass fread double zurück gibt, obwohl ich als PRECISION char angebe. Auch uchar hilft da nicht. Aber immerhin macht native2unicode anscheinend alles richtig.
MQ
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 08.02.2022, 17:39
Titel:
|
|
Hallo,
fread würde ich wirklich nur für Binärdateien verwenden. Ansonsten gibt es eigentlich immer schönere Möglichkeiten.
In der Doku von fread steht:
Zitat: |
The MATLAB®char type is not a fixed size, and the number of bytes depends on the encoding scheme associated with the file. Set encoding with fopen. |
Dem würde ich auch folgen, d.h. bei dir:
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
MasterQ |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 07.02.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.02.2022, 13:12
Titel:
|
|
Ich kann nicht immer vorher sagen wie eine Datei kodiert ist. Von daher muss ich vorher testen können, ob nun windows-1252 oder UTF-8 vorliegt.
Die Function detectImportOptions() tut nicht, weil ich keine MatLab-Dateien einlese sondern Dateien von anderen Anwendungen.
Mittlerweile ist mir aber klar, dass MatLab (Windows) intern mit windows-1252 kodiert. Das steht dann im Wiederspruch zu der Aussage in der Documentation. Oder gilt die Docu nur für Linux-Versionen?
Mein Lösung lautet nun:
Byte 0xC3 oder dezimal 195 ist die Kennung für UTF-8 Zeichen. Wenn vorhanden, dann ist die Datei höchstwahrscheinlich UTF-8. Bei unseren selbsterstellten Dateien bin ich mir da sicher, denn das mit windows-1252 kodierte char(195) ergibt ein A mit Tilde auf dem Kopf. Das kommt bei uns nicht vor!
MQ
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.02.2022, 17:14
Titel:
|
|
Hallo,
Zitat: |
Die Function detectImportOptions() tut nicht, weil ich keine MatLab-Dateien einlese sondern Dateien von anderen Anwendungen. |
detectImportOptions ist auch für tabellarisch aufgebaute Text- oder Excel-Dateien geeignet, aber eben nicht für Binärformate.
Zitat: |
Oder gilt die Docu nur für Linux-Versionen? |
Das sollte wenn explizit vermerkt sein.
Zitat: |
Das steht dann im Wiederspruch zu der Aussage in der Documentation. |
Das wäre dann ein Hinweis für den Technischen Support von MathWorks.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|