我有 '的日语字符串'。我想将其转换为 '% 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 的多字节编码仍在使用有点令人惊讶。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(36条)