Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
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)
' 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.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
LabVIEW und UTF-8
: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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' 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.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
LabVIEW und UTF-8
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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
09.03.2009, 09:18 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2009 09:20 von rolfk.)
' 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.
' 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.
' 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.
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
' 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.