AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EEncodingError Fehler

Ein Thema von greenmile · begonnen am 21. Apr 2014 · letzter Beitrag vom 26. Mai 2014
Antwort Antwort
Seite 1 von 3  1 23      
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#1

EEncodingError Fehler

  Alt 21. Apr 2014, 20:53
Hallo,

ich möchte auf dem Mac eine INI mittels TMemIniFile einlesen. Unter XE4 habe ich das immer mit "TMemIniFile.Create(Datei,TEncoding.UTF8)" gemacht, unter XE6 bekomme ich jedesmal die Exception "Im Projekt xxx ist eine Exception der Klasse EEncodingError mit der Meldung 'Keine Zuordnung für Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden' aufgetreten.". Habe es auch schon mit "TIniFile" versucht, selbiges Problem. Was bedeutet die Meldung? Was ist zu tun? Weiß das jemand?

Betrifft: Firemonkey Mac.

Geändert von greenmile (21. Apr 2014 um 21:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.533 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: EEncodingError Fehler

  Alt 21. Apr 2014, 22:22
Also z.B. meine (normalen) Ini-Files zum Speichern und Wiederherstellen der Formpositionen funktionieren:

ini := TIniFile.Create(AppIniName); Hast Du ein konkretes Beispiel, das man nachvollziehen kann?
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#3

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 12:44
Was bedeutet die Meldung? Was ist zu tun? Weiß das jemand?

Betrifft: Firemonkey Mac.
Die Meldung deutet darauf hin, dass die INI Datei Zeichen enthält,
dies es im Zielzeichensatz (MacOS = UTF8) nicht gibt. wenn z.B. deine INI Datei deutsche Umlaute (öäüÖÄÜß) enthält, die nicht UTF8 codiert sind.

Ronald
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 12:45
Hmmm, das kein durchaus sein, aber unter XE4 lief es. Gibt es da einen Aufrufparameter in .Create, womit er es "Egal wie, Hauptsache laden" erledigt?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 12:55
ich möchte auf dem Mac eine INI mittels TMemIniFile einlesen. Unter XE4 habe ich das immer mit "TMemIniFile.Create(Datei,TEncoding.UTF8)" gemacht
Erfolgen alle Zugriffe nur über Delphi mit vorhergehendem TMemIniFile.Create(Datei,TEncoding.UTF8)?

Wurde die Datei eventuell mit einem Editor manuell bearbeitet, der ein anderes Encoding verwendet?

Das Default Encoding auf OSX ist zwar UTF-8, aber Texteditoren "können auch anders"
Michael Justin
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 16:40
Die Datei lade ich direkt aus dem Internet, die kommt also immer Frisch auf den Tisch
Die Datei wird mit Indy mittels GET direkt in einen Stream geschrieben und ja, ich lese Sie nur mit TMemIni ein. Wieso greift da irgendein Encoding-Gedöns?

Geändert von greenmile (22. Apr 2014 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 17:04
Und in Windows ist es standardmäßig ANSI (wie bekommt man im iOS/OSX raus, ob eine Datei ANSI ist, wenn es für ANSI doch kein BOM gibt)

Und ja, Encoding (Umkodierung) brauchst du fast immer, außer
wenn das Format der Datei dem Format der Stringauswertung entspricht.

Und die INI ist vermutlich nicht als Unicode gespeichert.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 17:07
Nochmal: Ich lade die Datei mittels IndyHTTP.GET aus dem Netz, es handelt sich halt nur um eine INI Datei. In XE4 geht es einwandfrei, also das einlesen. In XE6 plötzlich nicht mehr. Jetzt kann ich die Quelle natürlich schlecht ändern, weil sonst meine XE4 Anwendungen nicht mehr laufen, also muss ich XE6 irgendwie überreden.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#9

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 17:27
Die Datei lade ich direkt aus dem Internet
Wie sieht denn der Code zum laden aus dem Internet aus?
Encoding ist immer relevant, wenn man mit mehr als einem Rechner zu tun hat: es kann zu Encoding-Problemen zwischen der auf dem Server liegenden Datei und dem Server, und Encoding-Problemen zwischen dem Server und dem Client kommen.
Michael Justin

Geändert von mjustin (22. Apr 2014 um 17:30 Uhr)
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: EEncodingError Fehler

  Alt 22. Apr 2014, 17:55
Also, ich habe mir die Datei mal mit Notepad++ angeschaut, sie scheint eine UTF8 Datei zu sein, ich kann auch alles darin lesen.
Wenn ich die Datei allerdings mit "TMemIniFile.Create(TempFile,TEncoding.UTF8);" öffne, kommt die Exception.
Genau wie bei TMemIniFile.Create(TempFile,TEncoding.AutoDetect);
  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:42 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