Я разработал простую веб-страницу, используя C.
Я получу значения адресов URL и проверю их с помощью strtok, strsep.
que=getenv("QUERY_STRING");
...
strcpy(val,strsep(&string,"="));
printf("%s<br>",val);
Результат браузера, когдаиспользуя <form method="GET">
Например: Когда вы набираете ۱
в поле ввода и нажимаете submit, он перенаправляет на http://localhost/api?identifier=%26%231777%3B
.
Вывод getenv("QUERY_STRING")
:
identifier=%26%231777%3B
![Browser Output](https://i.stack.imgur.com/pjXkk.png)
Попытка с различными значениями:
۱ => %26%231777%3B
۲ => %26%231778%3B
۳ => %26%231779%3B
۱۲۳ => %26%231777%3B%26%231778%3B%26%231779%3B
Это можно легко исправить с помощью функции в DecodeQueryStringC.
Написано Max Base.
https://github.com/BaseMax/DecodeQueryStringC
decodeUrl(val,val);
printf("Fix:%s<br>",val);
Результат просмотра при вводе вручную в адресной строке
Я использую Firefox 60.5.1esr (64-bit)
и Chromium 71.0.3578.98 (Official Build) (64-bit)
.
Например: При вводе ?identifier=۱
в конце http://localhost/api
:
Itавтоматически перенаправляет на http://localhost/api?identifier=%DB%B1
в браузере.
Вывод getenv("QUERY_STRING")
:
identifier=%DB%B1
![Browser Output](https://i.stack.imgur.com/yKrya.png)
Попытка с различными значениями:
۱ => %DB%B1
۲ => %DB%B2
۳ => %DB%B3
۱۲۳ => %DB%B1%DB%B2%DB%B3
Я также хочу поддержать, когда руководство пользователяLy изменяет URL (ссылку).Веди меня.