Hi ihr,
eine Software an der ich arbeite ließt eine Datei (im Endefekt sind es viele Dateien, der Fehler ist aber bei allen der selbe) ein.
Solange das Programm auf einem PC mit deutschen Regionseinstellungen ausgeführt wird ist alles ok.
Sobald aber in Systemsteuerung --> "Regions- und Sprachoptionen" unter "Erweitert" die "Sprache für Programme die
Unicode nicht unterstützen" von "Deutsch (Deutschland)" auf "Chinesisch (Hongkong S.A.R.)" gestellt wird sowie die "Codepagekonvertierungstabellen" 10000 bis 10004 angehakt sind funktioniert das einlesen nicht mehr korrekt.
Ich habe hier eine Testdatei wo nur ein "ö" drinn ist. Was unter einem "normalen" Windows auch korrekt ausgelsen wird. Wenn ich das ohne jegliches Encoding auf dem China Rechner die Datei einlese bekomme ich ein Fragezeichen raus. Mit
Ascii encoding wird mir ein kleines "v" ausgegeben. Nun ist die Frage was ist das richtige Encoding?
Im Testprogramm verwende ich TStringlist zum Datei einlesen. Aber eigentlich suche ich eine Lösung die auch bei bei ReadLn (AssignFile) funktioniert. Da ich mir so die Arbeit sparen könnte das ganze Programm umzukrempeln.
Testquellcode:
Delphi-Quellcode:
procedure TForm13.Btn1Click(Sender: TObject);
var
liste : TStringList;
arr : TArray<
string>;
begin
liste:=TStringList.Create();
// liste.Encoding:=TEncoding.ASCII;
//ASCII kommt kein chinesisch dafuer aber v anstelle von oe
liste.LoadFromFile('
test2.txt', TEncoding.ASCII);
arr:= liste.ToStringArray();
ShowMessage((liste[0]));
end;
Hat jemand eine Idee?