我正在开发一个网站,将输入字符串从日语翻译成英语。
此网站有两个文本字段和一个按钮,用于提交字符串以进行翻译。
但是当我点击按钮时,我可以看到地址栏中以%分隔的某种十六进制值。我只是想知道,这些haxadecimal值是输入字符串的值以及为什么它们被%分开?
背后是否有任何规则,空格分隔的值被转换为hexadeciaml并以%分隔?
对于前 - 本地主机/翻译/?HL = JA#JA / EN /%E6%9C%AC%E6%97%A5%E3%80%81%20%E3%83%97%E3%83%AC%EF%BC% 95S%E3%83%91%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E5%AE%9F%E6%96%BD%E3%81%97% E3%81%BE%E3%81%99%2013%3A30%EF%BD%9E%E3%80%82%EF%BC%88%E6%9C%AC%E7%95%AA%EF%BC% 9A6%2F17%EF%BC%88%E6%B0%B4%EF%BC%89
期待您的回答。
答案 0 :(得分:0)
您所看到的内容称为URL Encoding。它允许对URL不合法的字符仅由合法字符表示。
你是对的,它们是十六进制数字。
例如,如果您想在URL参数中表示#
字符,则可以使用%23
来执行此操作。如果您只是将#
字符放在那里,它将被解释为正在请求的页面上的锚点目标,这不是您想要的。
所以你看到的是你的表单输入被转换成这些十六进制代码。为什么,我不确定没有看到您的代码和您在表单中的实际数据。但是,您可以通过使用POST而不是GET来避免它,即表单操作。
答案 1 :(得分:0)
1.地址栏中以%分隔的某种十六进制值:
浏览器通过UTF-8将输入数据转换为网址字符串 编码。这是因为,在作为URL字符串发送之前,必须这样做 使用标准网址关键字删除有冲突的字符。
前:'?' 用于分隔HTTP请求中的URI和参数。所以,如果你的 输入有'?'这成了一个问题。因为服务器不知道 在哪里拆分URI和参数。
此外,您似乎正在执行HTTP GET
请求。但我认为你做POST
请求会更好。
你可以避免看到这个冗长的地址。
[浏览器]对输入的长度有限制。