![]() |
WritePrivateProfileW und Unicode INI-Files
Ich versuche einen Unicode-String in ein INI-File zu schreiben. Die Unit TIniFiles hab ich entsprechend auf WideStrings umgestellt, jedoch bereitet eine Stelle Probleme:
Delphi-Quellcode:
Ich habe diese Funktion mit WritePrivateProfileW ausgetauscht, um WideStrings schreiben zu können, trotzdem tauchen aber die Fragezeichen auf, es wird als ANSI gespeichert.
WritePrivateProfile
In diversen C++ Foren hab ich dann gelesen, dass diese Funktion ein ANSI File erstellt und nur in ein vorhandens INI-File Unicode schreibt. Also hab ich um es auszutesten eine UTF8 Datei erstellt und mit WritePrivateProfileW in diese Datei gespeichert - wieder nur Fragezeichen, also wieder nur ANSI geschrieben. Jetzt komm ich nicht mehr weiter.... Wisst ihr was los ist?!?! PS: Ich habe schon getesten ob der WideString nicht auf dem Weg zur Funktion verlorengeht, das kann nicht der Fehler sein. |
Re: WritePrivateProfileW und Unicode INI-Files
![]() Kurz gesagt: Wurde die INI-Datei mit einer Ansi-Funktion erstellt, dann ist und bleibt sie ANSI. Und mit'm Unicode isses andersrum. Nicht alles glauben, was die C++-ler einen einreden wollen. :angel2: |
Re: WritePrivateProfileW und Unicode INI-Files
Zitat:
![]() Nur was einem dort keiner sagt, ist, ![]() |
Re: WritePrivateProfileW und Unicode INI-Files
Du meinst?
Zitat:
|
Re: WritePrivateProfileW und Unicode INI-Files
Zitat:
|
Re: WritePrivateProfileW und Unicode INI-Files
Zitat:
Zitat:
|
Re: WritePrivateProfileW und Unicode INI-Files
Wenn ich das richtig mitbekomman hab, dann wird nur das Unicode-BOM (UTF-16) erkannt und alles andere ist Ansi, wobei das BOM dann als Text angesehn wird.
|
Re: WritePrivateProfileW und Unicode INI-Files
Gut, danke schon mal. Das könnte die Ursache sein.. UTF8 wird nicht als Unicode erkannt, UTF16 ist gefordert.
Die bisher verwendete Signatur für UTF8 von mir war EF BB BF, wie ist diese aber bei dem unterstützen vom Windows unterstützten UTF16? FE FF für Big Endian oder FF FE für Little Endian habe ich im Netz gefunden.. Ist das egal welche man nimmt? |
Re: WritePrivateProfileW und Unicode INI-Files
Zitat:
|
Re: WritePrivateProfileW und Unicode INI-Files
Ich habs mit beiden Signaturen ausprobiert und jetzt ist zu viel des guten passiert: Die ganze Datei (geöffnet im TextEditor) besteht nur noch aus chinesischen Zeichen und kann dementsprechend auch nicht mehr eingelesen werden...
Hab dann mal versucht manuell in die Datei zu schreiben (unterer Teil), aber auch das produziert die chinesischen Zeichen... Wie kann das denn passieren?! Hier mein Code:
Delphi-Quellcode:
var
f: file; ftxt: TextFile; fsig: array [0..2] of byte; begin fsig[0]:=$FF; fsig[1]:=$FE; try AssignFile(f, 'text.txt'); ReWrite(f, 1); BlockWrite(f, fsig, sizeof(fsig)); finally CloseFile(f); end; //zu Testzwecken hier das manuelle Schreiben try AssignFile(ftxt, 'text.txt'); Append(ftxt); Writeln('blabla'); finally CloseFIle(ftxt); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 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