[solved] epg2vdr - SQL-Error Incorrect string value

  • Hi *,


    nachdem ich doch ziemliche Probleme mit xmltv2vdr habe, habe ich heute mal den epgd-daemon und epg2vdr aufgesetzt.
    Nach längerem Gebastel scheint auch alles zu laufen.
    Nur eines hat mich beunruhigt - ich bekomme reihenweise Fehler wie den Folgenden im Log:


    Code
    epg2vdr: SQL-Error in 'execute(stmt_execute)' - Incorrect string value: '\xE4siden...
    ' for column 'longdescription' at row 1 (1366) 'Incorrect string value: '\xE4siden...' for column 'longdescription' at r
    ow 1' [insert into recordinglist set actor = ?, audio = ?, camera = ?, category = ?, channelid = ?, channelname = ?, cou
    ntry = ?, director = ?, duration = ?, episodecompname = ?, episodecomppartname = ?, episodecompshortname = ?, episodelan
    g = ?, eventid = ?, flags = ?, folder = ?, fsk = ?, genre = ?, guest = ?, inssp = ?, inuse = ?, job = ?, lastifoupd = ?,
     longdescription = ?, md5path = ?, moderator = ?, music = ?, name = ?, numrating = ?, other = ?, owner = ?, path = ?, pr
    oducer = ?, rating = ?, screenplay = ?, scrinfoepisodeid = ?, scrinfomovieid = ?, scrinfoseriesid = ?, scrmovieid = ?, s
    crnew = ?, scrseriesepisode = ?, scrseriesid = ?, scrsp = ?, shortreview = ?, shorttext = ?, starttime = ?, state = ?, t
    ipp = ?, title = ?, topic = ?, txtrating = ?, updsp = ?, vdruuid = ?, year = ?;]


    Kann/muss ich da etwas dagegen tun? Stimmt evtl. irgendwo ein Charset nicht?


    Danke und ciao.
    Michael.

    Einmal editiert, zuletzt von nobanzai ()

  • Hast du alt Aufnahmen bei denen in der info Datei der charset nicht stimmt. Vllt kannst du ja mal danach greppen.


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Hi,


    jo, ich hatte solche Aufnahmen und die auch gerade mit convmv "begradigt", aber der Fehler bezog sich ja auf das Feld "longdescription".
    Da sollte der Dateiname doch keine Rolle spielen, oder?
    Scheinbar muss ich die Inhalte aller info Files auch konvertieren - oder? Das sind doch die, aus denen "longdescription" geholt wird, nehme ich an.


    Danke und ciao.
    Michael.

  • Ja genau. Ich hatte da damals so einen rekursiven Befehl zu, krieg ich aber auch so nicht mehr auf die Reihe.


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Ja genau. Ich hatte da damals so einen rekursiven Befehl zu, krieg ich aber auch so nicht mehr auf die Reihe.


    Christian


    Naja, wenn ich weiß, dass ich die info File konvertieren muss, kriege ich das schon hin.


    Danke und ciao.
    Michael.

  • Hi again!


    Ne, irgendwie isses das nicht.
    Ich hab jetzt alle Dateinamen und die Inhalte aller info Files nach UTF8 konvertiert. Weder convmv (für die Dateinamen) noch file (für die Inhalte der info Files) zeigen noch irgendwas Verdächtiges != utf8 an.
    Trotzdem bekomme ich immer noch 1659 dieser Fehler.
    Ich habe auch mal nach den recht kurz abgehackten Teilstrings in den Meldungen gesucht (ohne das \xyz Zeichen) - und finde die Teilstrings weder in info Files noch in Dateinamen.
    Gibt es noch eine Stelle, die ich anschauen/konvertieren müsste?


    Ciao.
    Michael.

  • Wie sieht denn die "/etc/mysql/my.cnf" aus?



    Dazu:



    Die Servereinstellung für Collation und Charset sollte ja irrelevant sein, solange die Datenbank auf UTF-8 ist.


    Ciao.
    Michael.

  • Code
    MariaDB [(none)]> SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name ="epg2vdr";
    +----------------------------+
    | default_character_set_name |
    +----------------------------+
    | utf8                       |
    +----------------------------+
  • Nun, ich verwende epgdata nicht, aber so wie es aussieht scheinen die Daten nicht sauber als UTF-8 vorliegen.
    Die "\xF?" Zeichen sind ASCII Zeichen >128 und scheinen sich wohl nicht mit "normalem" UTF-8 darstellen zu lassen.


    Das vermute ich auch, allerdings finde ich diese Zeichen nirgendwo in meinen Aufnahmen - weder in den Dateinamen noch in den info Files - noch dazu, wo es angeblich über 1.600 Stück sind.
    Das ist das, was mich eigentlich verwirrt.


    [...]


    Ciao.
    Michael.

  • Ich bin mir doch schon ziemlich sicher, dass wenn Du richtig suchst, Du die 1600 Zeichen findest. ;)


    Wo du recht hast, hast du recht :)
    Allerdings ging es nicht um die ä's, sondern um die Zeichenfolgen, in denen die vorkommen.
    Und die Fehlermeldungen geben ja einen Teil dieser Zeichenfolgen aus - nicht besonders viel, aber genug, um danach suchen zu können (ohne das encodete 'ä' natürlich).
    Und da finde ich halt nix Passendes.


    Ciao.
    Michael.

  • Nun, der ausgegebene Fehler war: \xE4siden


    Wenn Du nun das "\xE4", wie oben schon geschrieben, durch ein "ä" ersetzt, dann hast Du "äsiden" und mit ein bisschen Fantasie kommst Du sicherlich drauf, dass das "Präsident" heißen könnte. :)


    Versuche es doch einfach mal so: ;)


    Code
    MYSQL_PWD=epg mysql -Ns -u epg2vdr -D epg2vdr -N -e "SELECT longdescription FROM events WHERE longdescription LIKE '%siden%' LIMIT 1"
  • oder wenn was schräg an den epgdata Daten ist nutze doch einen anderen Provider.


    Ich hab so langsam die Vermutung das dein ursprüngliches Problem mit xmlt2vdr auch mit diesen kruden Daten zusammenhing...


    hmm, wie haben wir denn jetzt die Brücke von den Aufnahmen zum Provider geschlagen, Aufnahmen war doch das Problem oder? Und wenn er einen Fehler auswirft und die nicht schreiben kann wird man die auch nicht auf der DB finden befürchte ich...

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Nun, der ausgegebene Fehler war: \xE4siden


    Wenn Du nun das "\xE4", wie oben schon geschrieben, durch ein "ä" ersetzt, dann hast Du "äsiden" und mit ein bisschen Fantasie kommst Du sicherlich drauf, dass das "Präsident" heißen könnte. :)


    Jo, genau sowas hatte ich gemacht - ohne Treffer. Aber halt auf Ebene der Dateinamen und der Inhalte der info Dateien.


    Zitat

    Versuche es doch einfach mal so: ;)


    Code
    MYSQL_PWD=epg mysql -Ns -u epg2vdr -D epg2vdr -N -e "SELECT longdescription FROM events WHERE longdescription LIKE '%siden%' LIMIT 1"


    Der Fehler tritt beim Einlesen der Aufnahmen (recordinglist) auf, von daher:


    SELECT longdescription FROM recordinglist WHERE longdescription LIKE '%siden%' LIMIT 1;


    Der select liefert denn auch tatsächlich einen Treffer. Die interessanten Fragen:


    1. Wieso steht das in der DB, wenn es doch einen Fehler beim Einlesen gegeben hat?
    2. Wo kommt der Text her, wenn er nicht in einem der info Files steht?


    Ciao.
    Michael.

  • oder wenn was schräg an den epgdata Daten ist nutze doch einen anderen Provider.


    Ich hab so langsam die Vermutung das dein ursprüngliches Problem mit xmlt2vdr auch mit diesen kruden Daten zusammenhing...


    hmm, wie haben wir denn jetzt die Brücke von den Aufnahmen zum Provider geschlagen, Aufnahmen war doch das Problem oder? Und wenn er einen Fehler auswirft und die nicht schreiben kann wird man die auch nicht auf der DB finden befürchte ich...


    Ne, wie du ja oben geschrieben hast - es geht nicht um die epgdata-Daten, sondern um die bestehenden Aufnahmen.
    Der Fehler kommt ja beim Einlesen in die recordinglist.
    Und da sich xmltv2vdr um die nicht kümmert, kann der Fehler da auch nicht aus demselben Grund entstanden sein - IMHO :)


    Ciao.
    Michael.

  • [...]Der select liefert denn auch tatsächlich einen Treffer. Die interessanten Fragen:


    1. Wieso steht das in der DB, wenn es doch einen Fehler beim Einlesen gegeben hat?
    2. Wo kommt der Text her, wenn er nicht in einem der info Files steht?


    1.] Es gab ja nur ein Problem mit den einzelnen Zeichen und nicht mit dem kompletten Datensatz.
    2.] Aus der DB, evtl. von scraper2vdr.


  • 1.] Es gab ja nur ein Problem mit den einzelnen Zeichen und nicht mit dem kompletten Datensatz.


    Das kann sein. Der Fehler sieht nur so dramatisch aus, dass ich davon ausgegangen bin, dass der Datensatz überhaupt nicht übernommen wird.


    2.] Aus der DB, evtl. von scraper2vdr.


    Ne, ich verwende selbst keinen scraper - wenn dann muss epgd das gemacht haben.


    Ok, egal.
    Ich lösche jetzt gaudihalber nochmals alles und baue die ganze DB neu auf.


    Dann schau mer mal, was vorher oder nachher da drin steht.


    Danke für alle Tips.


    Ciao.
    Michael.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!