J'ai une chaîne japonaise de 'ぱ は め'. Je veux le convertir en '% 82% CF% 82% CD% 82% DF'. J'espère que quelqu'un me donnera une fonction pour cette conversion.Codage de caractères au Japon
1
A
Répondre
1
Vous devez prendre la chaîne et l'encoder dans une page de codes spécifique. Prenez ensuite chaque octet codé et produisez sa représentation hexadécimale. Comme ceci:
function MyEncode(const S: string; const CodePage: Integer): string;
var
Encoding: TEncoding;
Bytes: TBytes;
b: Byte;
sb: TStringBuilder;
begin
Encoding := TEncoding.GetEncoding(932);
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;
Bien que vous ne l'avez pas dit cela, vous souhaitez encoder le texte comme page de code 932. Donc, vous devriez passer cette valeur lors de l'appel de la fonction.
Writeln(MyEncode('ぱはめ', 932));
Je dois dire que dans le moderne, il est un peu surprenant de voir cet octet multiples spécifique à Windows encodage encore en cours d'utilisation.
+0
Merci beaucoup pour votre temps à m'aider. Maintenant, je peux résoudre mon problème. Merci encore. :) –
Que produit votre fonction de codage d'URL normale? – Thilo
ma fonction est un peu longue. l'espace ici n'est pas suffisant pour écrire ma fonction. Je ne sais pas comment ajouter un long texte ici. –