Encoding bei XML Datei erstellen, einbauen

LauraM

Ensign
Registriert
Nov. 2019
Beiträge
133
Guten Morgen,
es kommt wahrscheinlich wieder Kritik, dass ich hier einfache Fragen stelle etc.
Nun, ihr habt mir immer gut geholfen und Kritik muss man auch so nehmen, niemand ist perfekt.

Ich arbeite mit einem mssql Server, wo ich 2 Tabellen habe. Ich mache eine Abfrage auf die beiden Tabellen und bekomme ich als Ergebnis eine xml datei. Bis dahin ist alles gut.
Auf erste Blick sind die Daten in DB sauber. Wenn ich die xml Datei aufmache sind anstatt "für"->"fu''r",ab und zu Fragezeichen zwischen der Wörter. Das sieht man nicht in DB. Allerdings wenn ich eine Zeile in word kopiere, sehe ich dort alle Zeichen.

Ich musste dann Encodierung einbauen, wie mache ich das?

Viele Grüße Laura
 
In der xml-Datei werden Umlaute (z.Bsp. Ü usw.) nicht korrekt dargestellt. Dafür erscheinen dann Fragezeichen usw.
Damit ist in deinem mssql Server die Codierung für die Ausgabe nicht oder nicht richtig vorgegeben für das Vorhaben und bei der Ausgabe in eine Tabelle werden dann Umlaute mit einem Fragezeichen, oder wie bei Dir ersichtlich anderen Zeichen, dargestellt.

Schau mal da rein:
-> MSSQL ausgabe -> umlaute oder Problem mit Umlauten mit MS-SQL und PHP oder [MSSQL] Umlaute werden als ? dargestellt oder XML und Umlaute

vielleicht hilft das ja bereits ;)

PS: mittels Google fand ich o.g. Links
 
Zuletzt bearbeitet:
Vielen Dank, ich habe der 2. Link auch schon gesehen (ich gehe natürlich andere durch). Das Problem liegt nur daran, dass ich oft nicht verstehe, was gemeint ist, da ich kein Programmier bin.
 
Probier mal sowas, (wenn du es in PHP löst) mysqli_set_charset($db_link,"utf8"); nachdem du dich mit der Mysql-DB verbunden hast. Sonst kannst du noch sowas wie mysqli_real_escape_string verwenden.
 
Hallo,

Kann es sein das du die Datei mit Windows Notepad aufmachst? Von der Zeile "Allerdings wenn ich eine Zeile in word kopiere, sehe ich dort alle Zeichen " vermute ich das du hier eine XML Datei im UTF-8 Format hast. Du kannst das verifizieren in der ersten Zeile der XML Date, da steht so was in der Art:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

Ältere Windows Notepad Versionen können das nicht darstellen, erst mit Windows 1903 wurde das angepasst. Was passiert wenn du die Datei direkt mit Word aufmachst?

Grüße,
Znep
 
leonM schrieb:
Probier mal sowas, (wenn du es in PHP löst) mysqli_set_charset($db_link,"utf8"); nachdem du dich mit der Mysql-DB verbunden hast. Sonst kannst du noch sowas wie mysqli_real_escape_string verwenden.

PHP? dankeschön, aber kenne mich überhaupt nicht aus.
 
Hallo, also in Datenbank sind keine komische Zeichen, wenn ich Wort mit Umlaut in Wird kopiere, sind auch keine Zeichen.
Aber wenn ich die Abfrage baue und als xml ausgebe, xml Datei öffne in mssql Server, sind anstatt ü->u'', also beim auslen über xml kommt dieser Encodierung wahrscheinlich.
[

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

Grüße,
Znep
[/QUOTE]
Nun weiss ich es nicht, wie ich das in xml schreiben soll?
Ergänzung ()

Madman1209 schrieb:
Hi,



darf man fragen, wieso du das dann machen musst, wenn du dich nicht auskennst und nicht vom Fach bist?

VG,
Mad

Da manchmal so passiert, dass man Aufgaben bekommt und muss man sie lösen.
Machst du nur das, was du gelernt hast? Wenn du was nicht kennst, fasst du nicht an?
Hier in Westen, ist das unmöglich. Entweder machst du, was dir gegegeben ist, oder fliegst du raus.
Ich versuche mich einarbeiten, obwohl das ist meine Zusatzaufgabe und nicht Hauptaufgabe. Das mache ich nebenbei.

Danke für die Kritik, das habe ich heute gebraucht.
 
Hi,

Da manchmal so passiert, dass man Aufgaben bekommt und muss man sie lösen.

das ist das Tagesgeschäft eines Softwareentwicklers. Aber die Aufgaben bewegen sich immer im Gebiet "Softwareentwicklung" und nicht plötzlich ganz wo anders.

Machst du nur das, was du gelernt hast? Wenn du was nicht kennst, fasst du nicht an?

natürlich erweitere ich mein Wissen, aber ich würde beruflich den Teufel tun und einen Job machen, von dem ich absolut keine Ahnung habe. Sowas nennt man Fachfremd. Ich käme als Softwareentwickler niemals auf die Idee jemand anderem beruflich die Bremsanlage am Auto zu reparieren.

Hier in Westen, ist das unmöglich. Entweder machst du, was dir gegegeben ist, oder fliegst du raus.

da würde ich nicht rausfliegen, weil ich bei so einem Arbeitgeber niemals anfangen würde!

Danke für die Kritik, das habe ich heute gebraucht.

schon interessant wie einem "Kritik" unterstellt wird wenn man eine Frage stellt...

VG,
Mad
 
  • Gefällt mir
Reaktionen: areiland
znep schrieb:
Hallo,

Kann es sein das du die Datei mit Windows Notepad aufmachst? Von der Zeile "Allerdings wenn ich eine Zeile in word kopiere, sehe ich dort alle Zeichen " vermute ich das du hier eine XML Datei im UTF-8 Format hast. Du kannst das verifizieren in der ersten Zeile der XML Date, da steht so was in der Art:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

Ältere Windows Notepad Versionen können das nicht darstellen, erst mit Windows 1903 wurde das angepasst. Was passiert wenn du die Datei direkt mit Word aufmachst?

Grüße,
Znep
Folgendes: in der Tabelle ist alles in Ordnung, gibt es auch keine komische Zeichen.
Wenn ich die Tabelle abfrage und daraus eine xml baue, mache ich die xml direkt in mssql server auf. Dort sehe ich , dass die Umlaute falsch sind. Wenn ich die xml in word oder notepadd++ aufmache, sind auch falsche Umlaute. Das alles macht mich wahrensinnig, da in der Tabelle alles gut ist. Also bei der eretellung der xml passiert was, was ich nicht nachvollziehen kann.
 
Lade hier eine vollstaendige XML Datei von einem Minimalbeispiel mal als Anhang hoch, sonst kommt man bei dir nicht weiter ... und bitte keine selbsterstellte XML Datei, wie du sie gerne haettest. Nur das was von der DB erstellt wird. LIMIT 1 oder so ist dein Freund fuer ein Minimalbeispiel. Danke

Ansonsten steht auch hier schon alles erklaert, musst du nur lesen: https://stackoverflow.com/questions/49762443/output-xml-files-with-encoding-utf-8-using-sql-server
Im Zweifel kannst du naemlich einfach
<?xml version=''''1.0'''' encoding=''''UTF-8''''?>
prependen
 
Wie genau erstellst du die XML-Datei. Exportierst du die Abfrage die du zuvor erstellt hast als XML durch deinen DB-Client und daraus kommt dann eine XML die die Zeichen falsch ausgibt? Ist das so richtig ?
 

Ähnliche Themen

Zurück
Oben