У меня есть японская строка 'ぱ は め'. Я хочу преобразовать его в «% 82% CF% 82% CD% 82% DF». Надеюсь, кто-то даст мне функцию для этого преобразования.Япония кодировка символов
1
A
ответ
1
Вам нужно взять строку и закодировать ее на определенной кодовой странице. Затем возьмите каждый закодированный байт и произведите его шестнадцатеричное представление. Как это:
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 все еще используется.
+0
Большое вам спасибо за то, что помог мне. Теперь я могу решить свою проблему. Еще раз спасибо. :) –
Что делает ваша обычная функция кодирования URL? – Thilo
моя функция немного длинная. пространства здесь недостаточно, чтобы написать мою функцию. Я не знаю, как добавить длинный текст здесь. –