Для URL-кодирования/декодирования было предложено использовать TNetEncoding
от Delphi XE7 вверх.URL-кодировка символа одиночной кавычки?
Так в Delphi X Е8 я использую этот код, например:
uses
System.NetEncoding;
...
edtEncodedURL.Text := TNetEncoding.URL.Encode('SetFont(''Arial'',15)');
, который дает следующий результат:
SetFont('Arial'%2C15)
Однако это не кодирует одиночные кавычки, как вы можете видеть из приведенного выше примера.
Кроме того, в W3Schools.com HTML URL Encoding Reference, в «Попробуйте сами» раздел, строка SetFont('Arial',15)
является URL-закодированы:
SetFont%28%27Arial%27%2C15%29
Так есть способ URL-кодирование также одиночные кавычки в Delphi X Е8?
[RFC 1738] (https://www.ietf.org/rfc/rfc1738.txt) явно позволяет символы одиночной кавычки остаются незакодированными в URL-адресе, и поскольку эта спецификация - это то, на чем основывается блок преобразования Delphi, я думаю, что ответ № –
'REST.Utils.URIEncode', похоже, выполняет эту работу: он получает' SetFont % 28% 27Arial% 27% 2C15% 29' из 'SetFont ('Arial', 15)'. – user1580348
С другой стороны, 'TNetEncoding.URL.Decode' выполняет задание со всеми закодированными символами: он ПРАВИЛЬНО декодирует' SetFont% 28% 27Arial% 27% 2C15% 29' обратно в 'SetFont ('Arial', 15)'. – user1580348