LabVIEWForum.de
LabVIEW und UTF-8 - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: LabVIEW und UTF-8 (/Thread-LabVIEW-und-UTF-8)

Seiten: 1 2


LabVIEW und UTF-8 - DJ_MotionX - 08.03.2009 18:41

Hallo. Habe folgendes Problem:
Lese mittels einer dll funktion aus einem XML file Texte aus. In der dll verwende ich eine Bibliothek die UTF-8 unterstützt. Auch die XML Datei ist in UTF-8 codiert. Wenn ich die Txte aber nun in LabVIEW darstellen möchte sieht das ganz nicht mehr so toll aus. derzeit machen nur die Dautschen Ümlaute Probleme. Es ist aber auch geplant anderssprachige Texte (Französich) darzustellen, deswegen hätte ich gerne eine saubere Lösung des Problems. Meine Frage ist nun gibt es in Lab view irgendeine Möglichkeit utf8 darzustellen und wenn ja wie stell ich das an? (Meine Lab view version ist 7.1)

L.g: Michael


LabVIEW und UTF-8 - rolfk - 08.03.2009 19:31

' schrieb:Hallo. Habe folgendes Problem:
Lese mittels einer dll funktion aus einem XML file Texte aus. In der dll verwende ich eine Bibliothek die UTF-8 unterstützt. Auch die XML Datei ist in UTF-8 codiert. Wenn ich die Txte aber nun in LabVIEW darstellen möchte sieht das ganz nicht mehr so toll aus. derzeit machen nur die Dautschen Ümlaute Probleme. Es ist aber auch geplant anderssprachige Texte (Französich) darzustellen, deswegen hätte ich gerne eine saubere Lösung des Problems. Meine Frage ist nun gibt es in Lab view irgendeine Möglichkeit utf8 darzustellen und wenn ja wie stell ich das an? (Meine Lab view version ist 7.1)

L.g: Michael

LabVIEW benützt MultiByte Codierung. Wenn Du auf Windows arbeitest kannst Du mit MultiByteToWideChar und WideCharToMultiByte zusammen einen UTF8 nach MultiByte Translator machen. Grundsätzlich musst Du dann den UTF8 String mittels MultiByteToWideChar nach UTF16 konvertieren und dann von da mittels WideCharToMultiByte nach dem LabVIEW MultiByte Format.
Nicht trivial aber durchaus machbar.

Rolf Kalbermatter


LabVIEW und UTF-8 - Y-P - 08.03.2009 20:16

:bahn:Ich hole aus einer Datenbank mit UTF8-Format Daten und das klappt problemlos.

Gruß Markus

' schrieb:LabVIEW benützt MultiByte Codierung. Wenn Du auf Windows arbeitest kannst Du mit MultiByteToWideChar und WideCharToMultiByte zusammen einen UTF8 nach MultiByte Translator machen. Grundsätzlich musst Du dann den UTF8 String mittels MultiByteToWideChar nach UTF16 konvertieren und dann von da mittels WideCharToMultiByte nach dem LabVIEW MultiByte Format.
Nicht trivial aber durchaus machbar.

Rolf Kalbermatter



LabVIEW und UTF-8 - rolfk - 08.03.2009 21:12

' schrieb::bahn:Ich hole aus einer Datenbank mit UTF8-Format Daten und das klappt problemlos.

Gruß Markus

Ja aber welches Datenbanktoolkit verwendest Du? ODBC und auch ADO arbeitet grundsätzlich mit ANSI oder WideChar (UTF16). UTF8 ist nicht Bestandteil der ODBC oder ADO Definition.

ADO liefert ja ganz einfach OLE Variants zurück und die Database Variant to LabVIEW Data Konversion kann ganz zufällig UTF16 String OLE Variants auch nach einem LabVIEW MultiByte String konvertieren. Die enstprechende "was auch immer" nach UTF16 Konversion übernimmt der Datenbanktreiber.

Rolf Kalbermatter


LabVIEW und UTF-8 - Y-P - 09.03.2009 08:11

Ich hab' das Database Connectivity Toolkit von NI. Da kommen Variants zurück und die wandle ich in Strings.

Gruß Markus

' schrieb:Ja aber welches Datenbanktoolkit verwendest Du? ODBC und auch ADO arbeitet grundsätzlich mit ANSI oder WideChar (UTF16). UTF8 ist nicht Bestandteil der ODBC oder ADO Definition.

ADO liefert ja ganz einfach OLE Variants zurück und die Database Variant to LabVIEW Data Konversion kann ganz zufällig UTF16 String OLE Variants auch nach einem LabVIEW MultiByte String konvertieren. Die enstprechende "was auch immer" nach UTF16 Konversion übernimmt der Datenbanktreiber.

Rolf Kalbermatter



LabVIEW und UTF-8 - rolfk - 09.03.2009 09:18

' schrieb:Ich hab' das Database Connectivity Toolkit von NI. Da kommen Variants zurück und die wandle ich in Strings.

Gruß Markus

Ok das DBCT verwendet auch ADO und Du verwendest anscheinend die implizite Konversion. LabVIEW führt dann hinter den Kulissen automatisch die "Variant to LabVIEW Data" Funktion aus. Wahrscheinlich funktioniert das in neueren LabVIEW Versionen auch gut aber ältere Versionen brauchten explizit den Einsatz der "Database Variant to LabVIEW Data" Funktion da ansonsten nur die standard "Variant to LabVIEW Data" Funktion benützt wurde und die lieferte einen Fehler zurück für Felder die NULL enthielten.

Rolf Kalbermatter


LabVIEW und UTF-8 - DJ_MotionX - 10.03.2009 12:36

' schrieb:LabVIEW benützt MultiByte Codierung. Wenn Du auf Windows arbeitest kannst Du mit MultiByteToWideChar und WideCharToMultiByte zusammen einen UTF8 nach MultiByte Translator machen. Grundsätzlich musst Du dann den UTF8 String mittels MultiByteToWideChar nach UTF16 konvertieren und dann von da mittels WideCharToMultiByte nach dem LabVIEW MultiByte Format.
Nicht trivial aber durchaus machbar.

Rolf Kalbermatter

Das Problem ist nicht das erkennen und das umwandeln der einzelnen speziellen UTF-8 Zeichen zurück in ASCII sondern das direkte anzeigen in LabVIEW. Ich könnte schon für die deutsche Sprache einen zeichenersetzer für die paar umlaute (Ä,ä,ö ..) basteln. Jedoch empfinde ich das nicht als saubere Lösung denn zukünftig sollen dann auch französische zeichen u.s.w. in den Textfelden von LabVIEW angezeigt werden können, also direkt der UTF8 codierte String.

L.g. Michael


LabVIEW und UTF-8 - RoLe - 10.03.2009 13:04

' schrieb:Meine Frage ist nun gibt es in Lab view irgendeine Möglichkeit utf8 darzustellen und wenn ja wie stell ich das an? (Meine Lab view version ist 7.1)
Versuch doch einmal, in der Stringanzeige, die Schriftart auf "Terminal" umzustellen.


LabVIEW und UTF-8 - rolfk - 10.03.2009 16:00

' schrieb:Das Problem ist nicht das erkennen und das umwandeln der einzelnen speziellen UTF-8 Zeichen zurück in ASCII sondern das direkte anzeigen in LabVIEW. Ich könnte schon für die deutsche Sprache einen zeichenersetzer für die paar umlaute (Ä,ä,ö ..) basteln. Jedoch empfinde ich das nicht als saubere Lösung denn zukünftig sollen dann auch französische zeichen u.s.w. in den Textfelden von LabVIEW angezeigt werden können, also direkt der UTF8 codierte String.

L.g. Michael

Aber LabVIEW verwendet eben nicht ASCII sondern MultiByte Encoding. Also ist das Problem eigentlich schon die Wandlung von UTF8 nach MBCS und das selber zu stricken macht wenig Sinn wenn das System schon die perfekte Unterstützung dazu hat.

Rolf Kalbermatter


LabVIEW und UTF-8 - DJ_MotionX - 10.03.2009 20:39

' schrieb:Versuch doch einmal, in der Stringanzeige, die Schriftart auf "Terminal" umzustellen.

Das hilft leider nicht.