URL encoding function

조회 수: 46 (최근 30일)
Eugene Kogan
Eugene Kogan 2011년 8월 3일
편집: Walter Roberson 2023년 12월 14일
Hi all,
I need to convert a string into a URL. I'm trying to use the urlencode function but it doesn't work properly, converting spaces to plus signs instead of the escape sequence %20. How can I convert the string properly, so space becomes %20 and other non-alphanumeric characters are replaced by their corresponding escape sequences?

답변 (4개)

Fangjun Jiang
Fangjun Jiang 2011년 8월 4일
Yes, it is weird. urlencode() is an one-line function. type "edit urlencode.m" to see if you can change the encoding method and then try again.
>> urlencode('http://www.mathworks.com/matlabcentral')
ans =
http%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral

Morrie Gasser
Morrie Gasser 2017년 2월 6일
If you are using the encoded result for a URI or URL, note that in R2016b there is a new class, matlab.net.URI, which may do the encoding you're looking for.
  댓글 수: 2
Tom Hawkins
Tom Hawkins 2019년 11월 19일
matlab.net.URI also appears to encode spaces (in query parameters etc) as + characters instead of %20.
Sean
Sean 2023년 12월 14일
That is also what I am seeing in 2023b.
tst = matlab.net.URI('http://2.2.2.2:20000', 'stringVal', 'test string');
tst.EncodedURI
ans =
"http://2.2.2.2:20000?stringVal=test+string"

댓글을 달려면 로그인하십시오.


Muhammad Siddiqui
Muhammad Siddiqui 2020년 4월 26일
I'm trying to detect SQL injection in my course of Pattern Recognition. My algorithm would be as follows:-
1) Encode URL feeded by user (this step is feature detection)
2) Compare the URL with the dataset of false URL.
3) Accordingly, classify whether URL is vulnerable or otherwise.
Please help me in writing code for above-stated steps. Prompt assistance is requested

Bereketab Gulai
Bereketab Gulai 2020년 4월 28일
편집: Bereketab Gulai 2020년 4월 28일
Here is an anternative,
Using mlreportgen.utils.fileToURI
report = getReport(x, 'extended', 'hyperlinks', 'off');
% Take some of the report beginning, replace
% spaces, they will be encoded (NOTE: potential other things may be encoded which could fail)
reportBeginningText = strrep(extractBetween(report, 1, 10), ' ', '%20');
% mlreportgen.utils.fileToURI is the only correct provider of encoded path, I suppose.
% However, "file:/c:/some/path" needs to be removed
formattedReport = reportBeginningText + extractAfter(mlreportgen.utils.fileToURI(report), reportBeginningText);
This example was used with mailto URL.

카테고리

Help CenterFile Exchange에서 Call Web Services from MATLAB Using HTTP에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by