AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?
Thema durchsuchen
Ansicht
Themen-Optionen

Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

Ein Thema von Rollo62 · begonnen am 26. Mai 2020 · letzter Beitrag vom 28. Mai 2020
Antwort Antwort
Seite 1 von 3  1 23      
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#1

Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 09:20
Hallo zusammen,

ich habe gerade den Link hier gesehen, wo es im Debugging geht.

Ich habe gerade ein ähnlcihes Problem, zwar nicht mit dem Debugger, aber irgendwo im Code könnte
sich ein nicht-printbares Unicode- oder ASCII-Zeichen eingeschlichen haben.
Ich sehe Fehler in Ausgabe-Texten und kann auch mit einem HEX-Editor die falschen Zeichen Zeichen sehen,
manche Editoren zeigen das aber gar nicht erst an.

Einige Units habe ich auf Unicode gesetzt, weil ich auch die internationalen Übersetzungen da drin habe.

Leider kann ich nicht genau sagen wo im Code das Problem genau herkommt, deshalb meine Frage:

Gibt es vielleicht in der IDE oder mit anderen Tools (Grep, RegEx, o.ä.) eine schnelle Suche aller Code-Stellen mit ungewöhlichen Unicode oder ASCII-Zeichen ?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 10:13
Delphi-Referenz durchsuchenTFile.ReadAllText und im Debugger nachsehn oder mit ner Schleife drüberlaufen

oder Hier im Forum suchenHxD


Ungewöhnliche Zeichen sind vorallem fast alle von #0 bis #31 (kleiner ' ') , außer #13#10 (Zeilenumbruch) und #9 (Tab),
und wenn du sonst keine Umlaute oder Unicode benutzt hast, dann auch noch ab #127.
$2B or not $2B

Geändert von himitsu (26. Mai 2020 um 10:17 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#3

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 10:46
Hallo himitsu,

danke für die Vorschlage, mit HxD hatte ich mir schon die Ergebnisse angeschaut, aber noch nicht die Units.
Aber kann damit nach auch Allen Vorkommen in Allen Units suchen ?
Ich dachte der ist nur für einzelne Files gedacht, und kann auch keine HEX-Ranges absuchen.

Mit ReadAllText o.ä. was selber bauen wäre eigentlich die letzte Möglichkeit,
ich hoffe eigentlich noch das es was in der IDE oder anderen Tools gibt.
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#4

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 11:03
Wenn du das auf bestimmte Units eingrenzen kannst, schaue dir diese Dateien doch mal mit Notepad++ an. Damit stehen dir viel mehr Funktionen zur Verfügung.
https://notepad-plus-plus.org

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#5

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 12:03
Hallo mytbo,

es geht um ein paar hundert Units, wo das Problem auftreten könnte.
Deshalb würde ich das ungerne manuell suchen, sondern z.B. mit einem cleveren Grep o.ä. nach den Stellen suchen lassen.
Es wird womöglich nur 10-20 Stellen geben, die kann ich dann mit Editoren oder HxD checken,
aber diese Stellen erstmal zu finden ist mein Problem.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 12:13
https://www.google.com/search?q=rege...ckoverflow.com
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#7

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 12:22
PowerGREP (absolut sein Geld wert und in Delphi geschrieben!) und reguläre Ausdrücke. Alternativ ripgrep, aber dann vermutlich nur mit aktivierter PCRE2.

Du wirst ja sicher den Bereich des BMP eingrenzen können, oder?

Gibt es vielleicht in der IDE oder mit anderen Tools (Grep, RegEx, o.ä.) eine schnelle Suche aller Code-Stellen mit ungewöhlichen Unicode oder ASCII-Zeichen ?
Was sind denn für dich ungewöhnliche Unicode-Zeichen? Alle außerhalb vom BMP? ASCII ist ohnehin eine Untermenge von Unicode, daher ist die Dopplung nicht aussagekräftig.

Aber deine Frage ist leider ungenau. Geht es dir um Zeichen die die man nicht sehen kann (Steuerzeichen ala LF usw.) oder um Zeichen die nicht allein stehen können (modifier symbol/letter)? Oder worum genau geht es? Schau mal in diese Übersicht hier.

Und dann wäre halt die Frage ob du das Problem nicht schon:
  1. anhand des BOM auf wenige Dateien eingrenzen kannst
  2. durch Nutzung einer Schriftart mit möglichst weitreichender Unicode-Unterstützung das Problem umgehen kannst

... häh weder war das die Frage, noch ergibt die Frage wie du sie eingetippt hast viel Sinn. Es sei denn wir reden über komplett alternative Kodierungen ala EBCDIC.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (26. Mai 2020 um 12:24 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 12:40
Was sind denn für dich ungewöhnliche Unicode-Zeichen? Alle außerhalb vom BMP? ASCII ist ohnehin eine Untermenge von Unicode, daher ist die Dopplung nicht aussagekräftig.

Aber deine Frage ist leider ungenau.
... häh weder war das die Frage, noch ergibt die Frage wie du sie eingetippt hast viel Sinn. Es sei denn wir reden über komplett alternative Kodierungen ala EBCDIC.
Ja nun, dir ist die Frage doch auch ungenau?!?
Meine Güte, dann halt "regex find non-printable characters".
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 12:45
Nichts für ungut. Warten wir mal ab was der Themenersteller uns noch so erzählt.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#10

AW: Womit kann man versteckte Unicode/ASCII-Zeichen im Code finden ?

  Alt 26. Mai 2020, 13:49
Ja sorry, wenn ich das falsche Zeichen schon kennen würde wäre es leichter

Ungewöhnliche Zeichen <==> alles was nicht in den Code gehört
- Unter CrLf denke ich wird nicht problematisch sein, könnte es aber doch
- Alles asserhalb [0..9,a..z,A..Z,normale Steuerzeichen]

Ich habe jedenfalls nicht die normalen ASCII-Zeichen bis 127 in Verdacht, damit kommt die IDE ja klar.
Ich vermute das irgendwo per Copy/Paste ein Unicode-Zeichen aus einer anderen Codepage reingerutscht ist, das wie ein normales Zeichen aussieht.

Ein mögliches Zeichen wäre 0xB0, das finde ich z.B. in einer gespeicherten Ausgabedatei,
welche an mehreren Stellen generiert werden kann, ich die Ursache aber nicht finde.

Also eine GREP Suche mit > 127 wäre erstmal das wo ich glaube das es was bringen könnte.
In einer Unit habe ich Übersetzungen in Unicode, auch da wäre es interessant nach ungewöhnlcihen Zeichen zu suchen.

@Assarbard, TiGü
Dankesehr für die Mithilfe, ich versuche mich mal mit ein paar der GREP Befehlen, ob da was sinnvolles bei rauskommt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz