AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?
Thema durchsuchen
Ansicht
Themen-Optionen

Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

Ein Thema von SneakyBagels · begonnen am 12. Mai 2017 · letzter Beitrag vom 12. Mai 2017
Antwort Antwort
TiGü

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

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 15:03
Habe ich eine Bildungslücke?
Was ist die StringOf()-Funktion?

Zeige doch mal Quelltext zum Öffnen der Datei, das Laden in den Stream, das Hashen und diese Umwandlung des Hashes in einen String zur Darstellung in einer Listview.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.785 Beiträge
 
Delphi 12 Athens
 
#2

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 15:15
Habe ich eine Bildungslücke?
Was ist die StringOf()-Funktion?
Guckst du hier: http://docwiki.embarcadero.com/Libra...Utils.StringOf

Aber genau da steht auch Ursache des Problems:
Zitat:
Konvertiert ein Byte-Array anhand der Standardgebietseinstellung des Systems in einen Unicode-String.
Das heißt, daß die Byte-Sequenz (in diesem Fall der Hash) als Ansi-Zeichen der aktuell eingestellten Code-Page interpretiert wird - und die ist halt nicht auf jedem Windows gleich. Es kann Zufall sein, daß das bisher nicht aufgefallen ist. Der Hash hat sich vermutlich mit dem Update geändert und enthält nun Bytes, die bei der obigen Interpretation unterschiedlich sind.

Wenn man nicht garantieren kann, daß die übergebenen Bytes eine gültige Zeichencodierung darstellen, dann sollte man eine andere Form der String-Umwandlung wählen. Dazu müsste man hier aber mehr über der Hash-Algorithmus wissen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#3

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 15:37
Zitat:
Konvertiert ein Byte-Array anhand der Standardgebietseinstellung des Systems in einen Unicode-String.
Und ich dachte immer Byte ist Byte weltweit. Ich benutze ganz normal wie wahrscheinlich jeder andere auch die Jedis dafür.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 15:39
Zitat:
Konvertiert ein Byte-Array anhand der Standardgebietseinstellung des Systems in einen Unicode-String.
Und ich dachte immer Byte ist Byte weltweit. Ich benutze ganz normal wie wahrscheinlich jeder andere auch die Jedis dafür.
Byte ist Byte.
Aber String ist nicht String. Das ist das Problem
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#5

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 15:41
Ich hatte gerade kurz darüber nachgedacht SetCodePage zu verwenden aber ich glaube das sind Dinge wo man sich nicht ins System einmischen sollte nehme ich an.
Zitat:
Aber String ist nicht String.
Außer Unicodestring. Der kann soweit ich weiß quasi alle Zeichen aufnehmen. Der sollte doch überall gleich sein.
Ich sehe gerade bei Wikipedia, dass die ungarische Codepage genau wie die deutsche 1250 ist.
https://en.wikipedia.org/wiki/Windows-1250

Geändert von SneakyBagels (12. Mai 2017 um 16:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.785 Beiträge
 
Delphi 12 Athens
 
#6

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 16:23
Zitat:
Konvertiert ein Byte-Array anhand der Standardgebietseinstellung des Systems in einen Unicode-String.
Und ich dachte immer Byte ist Byte weltweit. Ich benutze ganz normal wie wahrscheinlich jeder andere auch die Jedis dafür.
Du stellst aber eben keine Bytes dar sondern Buchstaben und die Zuordnung von Bytes zu Buchstaben ist nun mal nicht einheitlich. Wenn du auf Nummer sicher gehen willst, dann zeige die Bytes als Hex an oder verwende z.B. Base64 wenn es etwas kürzer werden soll.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#7

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 16:36
Wie würde das denn mit Base64 funktionieren? Mit Base64 hatte ich noch nie etwas zu tun.
Würde man hier dann die Bytes des Streams in Base64 wandeln sehe ich das richtig?

Vielleicht so?
... EncodeBase64(stream.Memory, stream.Size); // TBytesStream, gefüllt mit einer binary über loadfromfile

Geändert von SneakyBagels (12. Mai 2017 um 16:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.785 Beiträge
 
Delphi 12 Athens
 
#8

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 16:46
Wie würde das denn mit Base64 funktionieren? Mit Base64 hatte ich noch nie etwas zu tun.
Würde man hier dann die Bytes des Streams in Base64 wandeln sehe ich das richtig?
Base64 ist eine konsistente Art, eine Byte-Sequenz als lesbaren Text darzustellen - ebenso wie die Darstellung als Hex-String, nur kürzer. In der aktuellen Delphi Version 10.2 Tokyo findest du in System.NetEncoding in TNetEncoding.Base64 eine entsprechende Hilfsklasse für diesen Zweck. Ältere Delphi-Versionen haben das auch irgendwo (weiß nur gerade nicht mehr wo).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#9

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 16:51
Zitat:
Ältere Delphi-Versionen haben das auch irgendwo (weiß nur gerade nicht mehr wo).
Soap.EncdDecd?
  Mit Zitat antworten Zitat
TiGü

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

AW: Arbeitet ein ungarisches Windows anders als ein deutsches/englisches?

  Alt 12. Mai 2017, 15:38
Guck an, kannte ich noch nicht.
Auch eine Suche bei Google mit "StringOf delphi" hat das nicht sofort auf der ersten Seite hingezaubert.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:30 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