Just place your button inside of a reference tag, e.g.,
<a href="https://www.google.com/"><button>Next</button></a>
This seems to work perfectly for me and does not add any %20 tags to the link, just how you want it. I have used a link to Google to demonstrate.
You could of course wrap this in a form tag, but it is not necessary.
When linking another local file, just put it in the same folder and add the file name as the reference. Or specify the location of the file if in is not in the same folder.
<a href="myOtherFile"><button>Next</button></a>
This does not add any character onto the end of the URL either, however it does have the files project path as the URL before ending with the name of the file. e.g
If my project structure was...
.. denotes a folder \
- denotes a file
while four | denote a sub directory or file in parent folder
..public
|||| ..html
|||| |||| -main.html
|||| |||| -secondary.html
If I open file main.html, the URL would be,
http://localhost:0000/public/html/main.html?_ijt=i7ms4v9oa7blahblahblah
However, when I clicked the button inside main.html to change to secondary.html, the URL would be,
http://localhost:0000/public/html/secondary.html
No special characters are included at the end of the URL.
By the way - (%20 denotes a space in a URL it encoded and inserted in the place of them.)
Note: The localhost:0000 will obviously not be 0000. You'll have your own port number there.
Furthermore, the ?_ijt=xxxxxxxxxxxxxx at the end of the main.html URL, x is determined by your own connection, so obviously it will not be equal to mine.
It might seem like I'm stating some really basic points, but I just want to explain as best as I can.