Sonderzeichen wird nicht gespeichert

OlliK75

Benutzer
Beiträge
12
Hallo Leute,

Ich möchte in einer Spalte Sonderzeichen, wie z.B. das hochgestellte Minus/Plus oder hochgestellte Zahlen speichern. Geht leider nicht.

Gibt es einen Trick, das es doch geht?

Mit freundlichen Grüßen
Olli
 

Anhänge

  • E182AB2D-9501-4015-9929-6931C58700F6.jpeg
    E182AB2D-9501-4015-9929-6931C58700F6.jpeg
    182,7 KB · Aufrufe: 6
Werbung:
Bekomme die Ausgabe SHOW CREATE … nicht hin.
Tabelle hat folgende Konfiguration:
ID int, Zeichen VARCHAR, Beschreibung, VARCHAR

z.B. hochgestelltes Minus oder hochgestellte Zahlen funktionieren leider nicht

Direkt im MySQL-Server, Version 10.5.19
 
Version 10.5.19 dürfte dann wohl MariaDB sein, nicht mySQL.

Bekomme die Ausgabe SHOW CREATE … nicht hin.
Du musst nicht die Ausgabe hinbekommen, sondern den Befehl eingeben. (copy / paste oder abtippen)
Die Ausgabe kommt dann von allein.
Wenn eine Fehlermeldung erscheint, bitte posten, sofern Du sie selbst nicht beheben kannst.

Die Anweisung die ich genannt habe, liefert nicht nur den Spaltentyp (z.B. Varchar), sondern auch CHARSET, COLLATE u.a.
Wenn Du es nicht mit diesem Befehl hinbekommst, dann kannst Du das vielleicht irgendwo in Deinem Tool erkennen oder es steht sogar in der Table Createanweisung des Tutorials.

Wenn Du etwas nicht hinbekommst, nützt diese Aussage in einem Forum gar nichts. Du müsstest Dir wenigstens in einem Forum die Mühe machen, zu beschreiben, was Du genau nicht hinbekommst.

Wie sieht es bei dem Vorgang aus, die hochgestellten Zahlen einzutragen? Wie machst Du das?
SQL Insert?

Direkt im MySQL-Server,
Das ist weniger interessant, welches Tool benutzt Du für die Eingabe?
 
Tabelle hat folgende Konfiguration:
ID int, Zeichen VARCHAR, Beschreibung, VARCHAR
Nun, du hast VARCHAR, das kann diese Zeichen nicht speichern. Du müsstest den Datentypen ändern, damit das überhaupt funktionieren kann.

Allerdings kennen wir deine Aplikation nicht, eine solche Änderung in der DB kann Probleme für andere Software mit sich bringen bzw. kann auch unwirksam bleiben wenn die Software intern nicht damit umgehen kann. Auch bin ich jetzt kein MariaDB Experte, da können ja auch Indexe oder soetwas dran hängen. Bei deinem Wissensstand würde ich sagen frag den Ersteller der DB und bitte ihn, das anzupassen.
 
Hi,
sorry das ich mich melde.
Warum sollte das MySQL / MariaDB nicht können.
Geht in jedem Fall. Musst nur den richtigen CHARSET nehmen UTF8 und möglichst INNODB als ENGINE

Beispiel: MySQL 8.0

oder habe ichwas falsch verstanden

Gruß Bernd
 
Version 10.5.19 dürfte dann wohl MariaDB sein, nicht mySQL.


Du musst nicht die Ausgabe hinbekommen, sondern den Befehl eingeben. (copy / paste oder abtippen)
Die Ausgabe kommt dann von allein.
Wenn eine Fehlermeldung erscheint, bitte posten, sofern Du sie selbst nicht beheben kannst.

Die Anweisung die ich genannt habe, liefert nicht nur den Spaltentyp (z.B. Varchar), sondern auch CHARSET, COLLATE u.a.
Wenn Du es nicht mit diesem Befehl hinbekommst, dann kannst Du das vielleicht irgendwo in Deinem Tool erkennen oder es steht sogar in der Table Createanweisung des Tutorials.

Wenn Du etwas nicht hinbekommst, nützt diese Aussage in einem Forum gar nichts. Du müsstest Dir wenigstens in einem Forum die Mühe machen, zu beschreiben, was Du genau nicht hinbekommst.

Wie sieht es bei dem Vorgang aus, die hochgestellten Zahlen einzutragen? Wie machst Du das?
SQL Insert?


Das ist weniger interessant, welches Tool benutzt Du für die Eingabe?
Sorry das ich mich erst jetzt melde, hatte 2. schicht.

Ich nutze Chrome, logge mich in den Server ein, wähle meine Tabelle aus, gehe auf einfügen siehe Bild und fertig ✅

Wo das Frage Zeichen steht, sollte eigentlich als Zeichen hochgestelltes Minus stehen - mehr will ich garnicht.
 

Anhänge

  • DDCB9EDB-23D1-41E5-9520-42D78A364E04.jpeg
    DDCB9EDB-23D1-41E5-9520-42D78A364E04.jpeg
    589,9 KB · Aufrufe: 4
  • F21A79C6-1BCB-43B4-8468-A3259D1D13B1.jpeg
    F21A79C6-1BCB-43B4-8468-A3259D1D13B1.jpeg
    567,7 KB · Aufrufe: 6
Ich habe grade meine DB durchsucht nach hochgestellte Zeichen. Also einige Zeichen werden von wem auch immer, konvertiert in andere Zeichen.

Beispiel:
240 minâ»Â¹ ist in der DB so gespeichert
240 min⁻¹ ist die Ausgabe auf dem Bildschirm

Also direkt auf dem Server geht es nicht. Da muss ich das anders machen.

Trotzdem vielen Dank für eure Antworten.

Mit freundlichen Grüßen
Olli.
 

Anhänge

  • 70120F79-E9A9-4C1B-9AC2-C254D93AABCF.jpeg
    70120F79-E9A9-4C1B-9AC2-C254D93AABCF.jpeg
    48,9 KB · Aufrufe: 1
Werbung:
Ok, das ist die halbe Miete. Welche Adresse rufst Du damit auf.? Workbench, phpMyAdmin, .. ? (Ich nutze kein mariadb oder mysql und kann es an den Bildern nicht erkennen)
Also direkt auf dem Server geht es nicht. Da muss ich das anders machen.
Es gibt normalerweise kein "direkt auf dem Server".

Du musst Dich an vielen Stellen mal ein Kleinwenig mit den Begrifflichkeiten und der (groben) Technik auseinander setzen. Wenn Du selbst besser verstehst, was da passiert, kannst Du auch besser Probleme beschreiben, Lösungen suchen oder nach Hilfe fragen. "Da wo das Fragezeichen steht.." ist keine sinnvolle Beschreibung, selbst wenn ein Foto dazu beiliegt.

"Der Server" ist leider ein Begriff, der nicht eindeutig ist. Es kann die Hardware sein, auf dem ein bestimmtes Programm (z.B. Datenbank oder Workbench) läuft, es kann aber auch die Server-Software beschreiben.

Wenn MariaDB (Datenbankserver) und der Webserver, den Du als Tool nutzt, beide auf Deinem Laptop z.B. installiert sind, bist Du streng genommen immer noch nicht "auf dem Server". Egal welches Tool Du nutzt, das Tool ist ein Client, der sich "am Server" anmeldet. Was dabei wo ist, spielt keine Rolle.
Dein DB Server kann in der Amazon Cloud stehen.
Dein Webtool kann in Irland gehostet werden.
Du sitzt in Deinem Büro oder zuhause und verwendest ein Browser, der auf den Webserver in Irland zugreift.
(oder ein Command Line Tool, das dort hin verbindet)
Entscheidend für Deine und alle anderen Verbindungen zu Datenbank im Sinne der Zeichenverarbeitung ist
1. der Zeichensatz, mit dem der DB Server per Default arbeitet,
2. der Zeichensatz, mit dem die Tabelle angelegt ist, die Du editierst
3. der Zeichensatz, mit dem die Spalte angelegt ist, die Du editierst
4. und der Zeichensatz, mit dem der Client arbeitet, den Du beim Editieren verwendest. (Webtool, oder CLI)

Moderne Browser und moderne DB arbeiten eigentlich immer in UTF8 mit einem Encoding, was bis zu 4 Byte benutzt, um 1 Zeichen abzubilden (zu speichern). Es sollte also kein Problem sein, Deine "Sonderzeichen" zu speichern.
Es sei denn, der (jeweilig genutzte DB Client) ist falsch konfiguriert oder die DB (, Tabelle, Spalte) arbeitet nicht mit einem MultiByte Zeichensatz oder unpassendem Encoding.

Solange Du nicht rausfindest, wo auf Deine Bearbeitungsstrecke das Problem liegt, bekommst Du entweder
- niemals Deine Zeichen in die DB
- per Zufall richtig rein, aber nicht wieder richtig raus
- per Zufall richtig rein und richtig raus, aber jemand der mit korrekten Einstellungen arbeitet, sieht Zeichensalat

Alle Db und DB Clients arbeiten nach diesen Prinzipien und müssen vor dem Speichern, die Zeichen entsprechend der Verarbeitungskette encoden und bei der Darstellung / Abfrage decoden in die Zeichen, die zu OS / Browser / Programm des Nutzers passen.

Falls Du Dir mein Beispiel auf SQL Fiddle angeschaut hast:
Dort kannst Du sehen, wie man die verwendeten Einstellungen je Tabelle, Spalte abfragt.
Man kann diese Einstellungen auch ändern, also korrigieren oder seine Client Einstellungen entsprechend anpassen.

Es wurde bereits von @ukulele geschrieben, dass Du eine Anpassung des Servers, Tabelle, Spalte nicht vornehmen solltest, wenn es eine professionelle Software ist, die dahinter steckt. Ist es nur ein Schulungsetup, probier es aus, das zu ändern.
Und wie auch schon gesagt, vielleicht ist das Tutorial, was Du da bearbeitet so alt oder schlecht, dass es in sich einen Fehler hat. Das bekommt notfalls auch ein falsch konfiguriertes oder programmiertes Browsertool hin.
 
Zurück
Oben