Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在url查询字符串中不使用uri编码非ascii utf-8会产生什么后果_Url_Urlencode - Fatal编程技术网

在url查询字符串中不使用uri编码非ascii utf-8会产生什么后果

在url查询字符串中不使用uri编码非ascii utf-8会产生什么后果,url,urlencode,Url,Urlencode,根据几个Q&A,所以您应该对任何非ascii的内容进行uri编码,当然还有一些标点字符,比如查询字符串值和键中的=和& 然而,AFAIK not uri编码工作得很好 例如: 就我所知,它是有效的 我问这个问题的原因是我正在使用查询字符串对图表进行一些非常简单的本地化。一个典型的交互式图表可能有1-5个字符串,有人本地化使用该图表的文章可以执行以下操作 bla bla bla bla see the following diagram <iframe src="diagram.html

根据几个Q&A,所以您应该对任何非ascii的内容进行uri编码,当然还有一些标点字符,比如查询字符串值和键中的
=
&

然而,AFAIK not uri编码工作得很好

例如:

就我所知,它是有效的

我问这个问题的原因是我正在使用查询字符串对图表进行一些非常简单的本地化。一个典型的交互式图表可能有1-5个字符串,有人本地化使用该图表的文章可以执行以下操作

bla bla bla bla see the following diagram

<iframe src="diagram.html?caption=localized%20string"></iframe

in the diagram above bla bla bla ....
bla bla bla bla bla参见下图

在不同的浏览器中测试你的链接会给你一个答案

浏览器将负责对URL进行编码,大多数浏览器都会这样做。但是,在javascript中解析查询字符串证明是有问题的

在Internet Explorer中,URL被重写为:

你的javascript不会打印任何可见的内容

在Chrome和Firefox中,URL以多字节字符显示,您可以看到查询变量

在Edge中,URL的显示方式与IE相同,但javascript的工作方式与Chrome相同


你也参加过狩猎、歌剧等方面的考试吗?归根结底,它是特定于浏览器的。

就是在多字节字符中的一个字节为38(“&”)并且解析器崩溃之前,utf-8永远不会发生这种情况。请注意,如果右键单击链接并执行“复制链接地址”或类似操作,会发生什么。浏览器正在为您编码。HTTP只允许在请求行上使用USASCI。因此,您是对的,浏览器在发送之前对其进行编码,这表明我是对的,没有任何后果。在查询字符串中使用未编码的非ascii utf-8并不重要。适用于Safari、IE、Edge、Chrome和Firefox。任何一个浏览器都不可能浏览到ie重新编写的一半互联网,因为URL是不相关的。它在IE中工作得很好。我用来解析URL的代码是用ES6编写的,IE不支持它,因为这个问题与结果无关。只是为了让你看到我更新了网站。单击上面的链接,您将看到整个过程运行良好。
<iframe src="diagram.html?caption=図形の回転し方"></iframe>
<iframe src="diagram.html?caption=%E5%9B%B3%E5%BD%A2%E3%81%AE%E5%9B%9E%E8%BB%A2%E3%81%97%E6%96%B9"></iframe>