URL encoding function
70 views (last 30 days)
Show older comments
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?
0 Comments
Answers (4)
Fangjun Jiang
on 4 Aug 2011
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
1 Comment
Paulo Silva
on 4 Aug 2011
Edited: Walter Roberson
on 14 Dec 2023
Morrie Gasser
on 6 Feb 2017
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 Comments
Tom Hawkins
on 19 Nov 2019
matlab.net.URI also appears to encode spaces (in query parameters etc) as + characters instead of %20.
Sean
on 14 Dec 2023
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
on 26 Apr 2020
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
0 Comments
Bereketab Gulai
on 28 Apr 2020
Edited: Bereketab Gulai
on 28 Apr 2020
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.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!