Umlaute in Textdateien

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Umlaute in Textdateien

    Hallo, ich habe aktuell mal so eine Idee gehabt.
    Und zwar wollte ich ein WhatsApp-Statistik-Programm machen. (so für mich)
    Es gibt zwar ein paar Apps dazu, aber keine, die so die Statistiken rausbringt, die ich gerne hätte. ;)

    Man kann sich einen Chatverlauf als txt-Datei per E-Mail zusenden und diese wollte ich mit meinem Programm dann auslesen und auswerten lassen.
    Soweit, so gut. Doch werden die Umlaute Ä, Ö, Ü und auch ß nicht richtig dargestellt.

    ß ist ß
    ö ist ö
    ü ist ü
    usw.

    Gibt es eine Möglichkeit, diese richtig anzuzeigen bzw. den Text zu konvertieren?
    Die txt-Datei selbst neu abzuspeichern kommt eigentlich nicht in Frage, denn ich will, dass das Programm mit der von WhatsApp erstellten Datei funktioniert und ich nicht erst an der Datei selbst was ändern muss. ;)

    Eine andere Frage:

    Smilies werden natürich auch nicht angezeigt. Diese sehen dann bspw. so aus:
    😄

    Da gibt es wahrscheinlich jetzt auch nicht so ne Lösung, wie man die anzeigen könnte? ?(
  • GML-Quellcode

    1. str = string_replace(str, "ß ", "ß");
    2. str = string_replace(str, "ö", "ö");
    3. str = string_replace(str, "ü", "ü");


    Ich würde das so probieren. In der variable str steckt der Text, den du vorher aus der Textdatei ausgelesen hast. Ich bin nicht komplett sicher, ob der Gamemaker einfach so mit den Sonderzeichen klar kommt, aber einen Versuch ist es wert.
  • Ja, das hab ich schon gemacht, das funktioniert und wäre so Plan B, dachte ich. ;)
    Denn unter Umständen gibt es ja noch viele weitere Zeichen als "nur" Ä, Ö, Ü und ß ;)
    Hätte ja sein können, dass es dafür schon eine Funktion gibt oder so ähnlich. ;)

    Gibt es denn die Möglichkeit, Grafiken in einem Text anzeigen zu lassen?
    Also dass ich bestimmte Zeichen durch Grafiken ersetze?
    Denn nur so könnte ich wahrscheinlich die Zeichen für die Emojis ersetzen...
    Ein Tabelle, wo aufgelistet ist, welches Zeichen, welches Emoji ist, gibt es wahrscheinlich nicht, oder?
    Ist bei mehreren Tausend Smilies auch total umständlich... :/
    Ich habe allerdings z.B. die NotoColorEmoji.ttf, wo alle Emojis drin sind. Hilft die vielleicht irgendwie?
  • da emojis ja, so weit ich weiß, auch unicode Schriftzeichen sind, sollte das genauso gehen, wie bei den sonderzeichen. Versuche mal die Emojis einfach wie text zu kopieren und als string in den Quellcode einzufügen. Keine Ahnung, ob der Gamemaker das mitmacht, aber ich würde das mal probieren.

    Edit. in Windows 10 findest du die emojis einfach in der Bildschirmtastatur
  • Und mit was bitte soll ich die dann ersetzen?
    Abgesehen davon ist das ja eine krasse Arbeit, erst einmal manuell alle Zeichen den Emojis zuzuordnen.
    Gibt es nicht Schriftarten, die der Game Maker darstellen kann?
    So wie bspw. auf dieser Website:
    getemoji.com/

    €dit:
    Btw: In der txt-Datei sinds auch direkt die Emojis, die da drinstehen. Also nicht diese komischen Zeichen da oben, die am Ende beim Game Maker rauskommen.
    Wenn in die in Word bspw. einfüge, sehe ich, dass das die Schriftart "Segoe UI Emoji" ist. Aber auch mit dieser Schriftart wird im Game Maker nur der Text angezeigt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Basti ()

  • Also erstmal würde ich die range der font hochstellen mindestens auf 255 (ascii) damit dir nichts verloren geht. Für die emojis könntest du eine font editieren und unbenutzte keycodes mit den emojigrafiken ersetzen. So könntest du mit string_replace raussuchen und durch deine emojis ersetzen. Das ganze kannst du dann auch recht simpel malen ohne die font zu wechseln oder draw sprite zu benutzen.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • In wie fern kann ich das malen?
    Also die Smileys rausfiltern geht, das habe ich jetzt schon gemacht. Er erkennt, was ein Smiley ist und was nicht.
    Nur ist es ja nicht so, dass ein Smiley nur aus einem Zeichen besteht, sondern meist wie oben aus 4 Zeichen.

    Die Range beim Font hab ich immer auf 255 stehen. ;)

    €dit: Achso, jetzt habe ich glaube ich verstanden, wie du das meinst. Mit string_replace dann diese 4 Zeichen eben in ein Zeichen ersetzen, was ein Smiley ist.
    Nur das Ding ist doch: Bei WhatsApp gibt es tausende Smileys. Und die kann ich in so einen Font ja auch nicht reinmalen. :D

  • Ich habe da noch etwas herausgefunden.
    Und zwar kann ich diese Zeichen in Ascii-Werte umwandeln.
    Dann habe ich (meist) 4 Zahlen, was genau dem UTF-8 (dec.) Code hier in dieser Tabelle entspricht:
    utf8-chartable.de/unicode-utf8…7808&number=1024&utf8=dec

    Ich habe alle Emojis als png-Dateien die als Dateinamen den Unicode Code haben.

    Ich bräuchte also nur noch eine Metheode um den UTF-8 Code in Unicode umzuwandeln.
    Nur sehe ich da nicht, wie das ehen soll!? ?(
  • Hallo Basti,

    ​ich finde das Thema mit den Schriftarten interessant.

    ​Deshalb habe ich jetzt selber mal bisschen probiert.

    Unter Windows (ab 8.1) gibt es ja die Segoe UI Emoji.

    ​Aber diese scheint ja nicht alle nötigen Emojis für Whats App zu enthalten.

    ​Außerdem weiß ich noch nicht wie man die unter Windows bunt darstellen soll. ?(

    Die NotoColorEmoji.ttf funktioniert unter Windows doch garnicht. Oder etwa doch ?

    ​Was meinst du mit:

    ​Ich bräuchte also nur noch eine Metheode um den UTF-8 Code in Unicode umzuwandeln.


    ​UTF-8 ist doch Unicode. Unicode ist doch nur eine Überordnung (UTF-8 /UTF-16 (Big Endian oder Low Endian) /...)

    ​Ich hätte jetzt auch noch keine Idee, aber werde mal noch ein bisschen rum probieren.
  • Sooo Basti,

    also Segoe UI Emoji ist die korrekte Schriftart für Whats App.

    Wenn man dies bei Gamemaker im Font-Dialog:


    eingibt hat man ja alle Zeichen, aber GM kann die Zeichen nicht darstellen.

    Tja also doch Bilder verwenden ?

    Man könnte sich ja selber eine eingeschränke Font (in der Anzahl der Zeichen) basteln mit allen benötigten WhatsApp-Zeichen.
    Dann müsste man aber erstmal die Whats App-Textdatei in diese Schriftart konvertieren.

    Oh je mi ne! :headtouch:

    .....
    Ich habe hier mal eine .gmz mit meiner eigenen Schriftart (Arial + Emoji' s).
    //Ich muss das mal mit eine freie Font modifizieren. (Habe nachgelesen: Es ist nicht erlaubt eine Schriftart wie Arial zu modifizieren.)

    Dabei müsste diese Schriftart aber erstmal installiert werden (Font ist beigefügt) und die Quelldatei müsste auch in dieser Schriftart sein.

    Insgesamt bringt das also ohne Konvertierung rein gar nichts.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Weihnachtswichtel ()

  • Hi!

    Ich habe eine Lösung gefunden.

    Du kannst es per Webbrowser darstellen.

    Lade dir mal dieses Plugin runter:
    marketplace.yoyogames.com/assets/683/web-browser (free)

    Jetzt musst du wie folgt vorgehen.

    Speichere deine WhatsApp-Textdatei als Unicode (nicht UTF-8) ab.
    Gib dann im Controller Create-Event z.B folgendes ein:

    Quellcode

    1. BrowserCreate("G:\WhatsApp.txt",false);
    (Hier muss der Pfad zu deiner Textdatei stehen.)

    Der Browser sollte alle Zeichen korrekt darstellen.

    Ist vielleicht nicht die beste Lösung, aber eine mögliche Lösung.

    ...
    ​Mit dieser Extension kannst du die UTF-8 What's App-Textdateien gleich automatisch in Unicode umwandeln und danach darstellen.
    (Also nix mehr manuell)

    workupload.com/file/3VtyBvV

    Viel Spaß!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Weihnachtswichtel ()

  • Ja gut, dass er es für den Browser exportiert, das bekomme ich auch hin, das ist kein Problem.
    Aber dass es im Programm selbst angezeigt wird, ist in der Tat wohl etwas umständlich, wenn man Zeichen mit Grafiken ersetzen muss.

    Und von UTF-8 nach Unicode wollte ich deshalb konvertieren können, da in meiner Datei ja der UTF-8 Code vorliegt (bspw. 240 159 152 130) und meine Grafiken ja in Unicode-Form vorliegen (U+1F602).
    Das habe ich nun hinbekommen.
    Jetzt kann ich zumindest mir mal den Smilie ausgeben lassen, der am häufigsten vorkommt oder so. Also bei so vereinzelten Smilies geht das. Nur für den ganzen Chatverlauf ist das irgendie zu umständlich, denke ich...