Ich habe eine Zeichenfolge 'MIROKU'
. Ich möchte diese Zeichenfolge in '%82l%82h%82q%82n%82j%82t'
konvertieren. Im Folgenden finden Sie meine aktuelle Funktion, die ich verwendet habe, für die Umwandlung:Delphi: Konvertieren von Windows-1251 nach Shift-JIS
function MyEncode(const S: string; const CodePage: Integer): string;
var
Encoding: TEncoding;
Bytes: TBytes;
b: Byte;
sb: TStringBuilder;
begin
Encoding := TEncoding.GetEncoding(CodePage);
try
Bytes := Encoding.GetBytes(S);
finally
Encoding.Free;
end;
sb := TStringBuilder.Create;
try
for b in Bytes do begin
sb.Append('%');
sb.Append(IntToHex(b, 2));
end;
Result := sb.ToString;
finally
sb.Free;
end;
end;
MyEncode('MIROKU', 932)
kehrt '%82%6C%82%68%82%71%82%6E%82%6A%82%74'
. Ich erwarte dieses Ergebnis nicht. Ich erwarte '%82l%82h%82q%82n%82j%82t'
. Gibt es Funktionen, um es richtig zu konvertieren?
Ich möchte den String '** MIROKU **' in '**% 82l% 82h% 82q% 82n% 82j% 82t **' umwandeln. –
Und was produziert Ihre Funktion? Bitte verbessern Sie Ihre Frage. Sie haben nicht gesagt, was Sie für den 'CodePage'-Parameter übergeben und Sie haben nicht gesagt, was Sie von der Funktion bekommen und warum ist das falsch. – gabr
Was ist die Frage? Du hast keine Frage gestellt. Überhaupt. Du sagtest: "Ich möchte X machen. Das ist meine Aufgabe, X zu machen." Bitte stellen Sie eine Frage. –