根据URL Encoding,在移动网站时 - 我没有构建 - 我已经遇到了使用%3F,这意味着什么?它似乎被大量使用:<a href="example%3Flang=1.html">Example</a>
什么链接到名为example_lang=1.html
的文件。
所以,我将%3F
替换为_
,一切都有效。
Q - 我在这里遗漏了一些东西,旧的网站工作了,虽然感动了,但它已经不复存在了。随着替换,链接工作......为什么?
答案 0 :(得分:6)
首先,你应该详细说明你的问题,以便更好地理解它。如果我理解正确,那么这可能就是答案。
“_”不是保留的URI字符。
正如你所说,%3F是为“?”而保留的那么你是绝对正确但如果你阅读wiki上写的文档说“_”(下划线)不是保留的URI字符。
因此,例如,如果网页的网址为“ example_test.html ”,则其编码的网址必须为“ example_test.html ”,如果没有应用于该URL的机制。现在我将采用另一个基于PHP的网页示例来回答您的问题。
在PHP中有一个函数“ str_replace ”,用于通过程序员定义的字符或字符串替换字符串。
假设我有一个名为“ example_test.html ”的页面,出于某些xyz原因,我想将其更改为“ example%3Ftest.html ”然后我可以使用
str_replace("%3F","_","<a href='example%3Ftest.html'>Example Test</a>");
此功能将搜索“%3F ”的所有出现,并将其替换为提供的字符串中的“ _ ”(此处为“ href = example%3Ftest” .html “)并输出为” href ='example_test.html “,这是我文件的实际链接。