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 ?

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 2  1 2   
TiGü

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

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

  Alt 26. Mai 2020, 11: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
 
#2

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

  Alt 26. Mai 2020, 11: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.240 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 26. Mai 2020, 12: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
mytbo

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

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

  Alt 26. Mai 2020, 16:08
Mal folgenden Versuch starten:
Erstelle eine komplette Kopie deines Sourcecode Verzeichnisses. Schreibe eine kleine Hilfsfunktion. In der mORMot Library Unit SynCommons.pas gibt es viele Funktionen zum Konvertieren.
Delphi-Quellcode:
var
  i: Integer;
  list: TFileNameDynArray;
begin
  list := FindFilesDynArrayToFileNames(FindFiles('F:\myStartDir', '*.pas', '', False, True, True));
  for i := Low(list) to High(list) do
    FileFromString(AnyTextFileToString(list[i], True), list[i]);
end;
Dann mit dem Total Commander und dem Befehl "Verzeichnisse synchronisieren" nachschauen was sich zwischen Original und Kopie geändert hat.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

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

  Alt 26. Mai 2020, 22:01
Zähl doch einfach die Bytes:

Code:
Pseudocode:

type
BCarray = array [0..255] of Integer;
.....

for i:=0 to length_of_File do inc(bcarray[bytestream[i]),1);
Grundannahme ist, daß die Datei Ansi-codiert ist. In diesem Falle liegen die häufigsten

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#6

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

  Alt 27. Mai 2020, 09:08
Sofern ich mich recht entsinne, sollte ein Formatieren des Codes durch eines der gängigen Tools (IDE oder auch GExperts) ausreichen. Es gibt da wohl auch die Option das komplette Projekt zu formatieren.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  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 27. Mai 2020, 10:42
Hab das jetzt mal mit ripgrep in meinem Home-Verzeichnis durchexerziert:
Code:
rg -P '[^\x00-\x7FÄÖÜäöüß]'
... du kannst andere Zeichen zwischen ß und ] einfügen.

Falls du dich mit RE noch nicht so auskennst: "[]" definiert eine Menge von Zeichen auf die der Ausdruck zutrifft, "^" negiert das, "\x00-\x7F" trifft auf alle ASCII-Zeichen (also 0..127) zu und dahinter folgen halt die Umlaute in Groß- und Kleinschreibung, sowie ß.

Was ich damit fand waren bspw. das Copyrightzeichen ©, Apostrophe ’ (statt ' auf der Tastatur), ², ●, µ, └, ─, à, í, î, ⍝, •, ‣, ⁃, χ, ⍺, ⍶, ⍵, ∇, ⍫, é, jede Menge Emojis (hunderte!) und diverse Zeichen die in einer anderen Codepage Sinn ergeben, aber nicht als UTF-8 interpretiert. Jetzt muß ich erstmal aufräumen, weil viel von dem Code eigentlich als UTF-8 daherkommen sollte.

Über 30000 Dateien in ~2 Sekunden.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
bjuergen

Registriert seit: 9. Dez 2012
2 Beiträge
 
#8

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

  Alt 27. Mai 2020, 18:28
Hallo,
wie schon ein Vorredner geschrieben hat, schau dir mal Notepad++ an, da kannst du ganze Unterverzeichnisse auch mit Regulären ausdrücken durchsuchen und bekommst alle Stellen die dem Suchbegriff entsprechen angezeigt.

Jürgen
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#9

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

  Alt 27. Mai 2020, 19:17
Danke an Alle für die vielen Vorschläge.

Ich werde jetzt wohl eine kleine Routine in den Code bauen, damit ich das Debuggen/Loggen kann.
Das im Code Suchen scheint doch Mehraufwand zu sein.

@Sherlock:
Ja, CodeFormat wäre machbar.
Aber ich nutze das eigentlich nicht, wharscheinlich erkenne ich dann meine Programme dannach nicht wieder
So eine Taste drücke ich erst wenn ich genau weiss was hinten rauskommt,
nicht am produktiven Code.

Diese falschen Zeichen kamen wohl von Cut-and-Paste von ausländischen Seiten, Mails,
API-Referenzen, speziell aus chinesischen Dokumenten.
Die Chinesen kopieren anscheinend nicht nur Markenartikel,
sondern auch einzelne Font-Character, so das man den Unterschied nicht merkt

Ich mache normalerweise Copy-and-Paste von Code und Kommentaren zuerst in meinen ASCII-Editor,
damit Formatierungen etc. raus sind.
Leider vergesse ich das schonmal, und die IDE meckert ja auch nicht.
Vielleicht wäre ein Clipboard-Cleaner ein schönes, neues Tool für das reine ASCII Text-Kopieren ohne Reue
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#10

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

  Alt 28. Mai 2020, 08:12
Der Formatter macht nix kaputt, habe ich im Rahmen unserer Validierung von externen Tools überprüft. Du kannst den Formatter ja an Deinen Stil anpassen. Ich habe mittlerweile Strg+D, Strg+S als Tastenfolge derart fest in mir drin, wenn ich einen Codeblock fertig habe, daß ich das manchmal in anderen Texteditoren anwende, was zu unerwünschten Ergebnissen führen kann.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz