1
我有日文字符串'ぱはめ'。我想將它轉換成'%82%CF%82%CD%82%DF'。我希望有人會給我一個這種轉換的功能。日本字符編碼
我有日文字符串'ぱはめ'。我想將它轉換成'%82%CF%82%CD%82%DF'。我希望有人會給我一個這種轉換的功能。日本字符編碼
您需要取出字符串並在特定的代碼頁中進行編碼。然後取每個編碼字節併產生其十六進制表示。就像這樣:
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;
雖然你沒有說這一點,你希望將文本作爲932代碼頁編碼所以,你應該調用函數時傳遞的價值。
Writeln(MyEncode('ぱはめ', 932));
我必須說,在現代,看到這個Windows特定的多字節編碼仍在使用中有些令人驚訝。
非常感謝您抽空幫助我。現在我可以解決我的問題。再次感謝。 :) –
你的普通URL編碼函數產生什麼? – Thilo
我的功能有點長。這裏的空間不足以編寫我的功能。我不知道如何在這裏添加長文本。 –