Google QR code URL扫描后如何包含%20个空格?
How to include %20 spaces in Google QR code URL after scanning?
我正在尝试生成包含 Google 地图路线的二维码图像。例如,我有以下 Google 地图 URL:
$encodedmapsurl = https://www.google.nl/maps/dir/De%20Aar%2018,%208253%20PN%20Dronten/De%20Lepelaar%2012,%208251MT%20Dronten/De%20Lepelaar%201,%208251mt%20Dronten/De%20Aar%2018,%208253%20PN%20Dronten/
然后我生成 Google 图表二维码,如下所示:
<img src="https://api.qrserver.com/v1/create-qr-code/?data=$encodedmapsurl&size=150x150" />
我得到了以下二维码:
这很好,但是,当我使用移动应用程序扫描二维码时,结果是:
请注意,URL 本身包含 URL 中每个 space 的 %20,但结果(扫描二维码后)却没有。这导致无法点击 URL。考虑到某些 QR 代码生成器在扫描后确实在 URL 中包含 %20,例如 this 一个,这种行为很奇怪。 Google 图表 QR 码 API 有什么办法可以在扫描后将 %20 包含在 URL 中吗?或者,我也可以使用另一个 PHP library/API 来完成这项工作(我找不到)。结果应如下所示:
首先尝试 formally encoding it as a url:
$encodedmapsurl = "https://www.google.nl/maps/dir/De%20Aar%2018,%208253%20PN%20Dronten/De%20Lepelaar%2012,%208251MT%20Dronten/De%20Lepelaar%201,%208251mt%20Dronten/De%20Aar%2018,%208253%20PN%20Dronten/";
$encodedmapsurl = urlencode($encodedmapsurl);
此外,然后尝试在生成二维码之前将编码的 url 发送到 bitly 或类似的缩短器。
如果还是不行,在日本我经常发现特殊字符会导致许多 hard-to-find/fix 问题(例如 1 位“%”与 2 位“%”字符)。尝试使用 charset-source (and charset-target) parameter.
只编码一次:
$map_url = 'https://www.google.nl/maps/dir/De+Aar+18,+8253+PN+Dronten,+Netherlands/De+Lepelaar+12,+8251+MT+Dronten,+Netherlands/De+Lepelaar+1,+8251+MT+Dronten,+Netherlands/De+Aar+18,+8253+PN+Dronten,+Netherlands/@52.5308376,5.7062268,14z/data=!3m1!4b1!4m25!4m24!1m5!1m1!1s0x47c62a8ab5ae23a5:0x44f1928143db42a1!2m2!1d5.7085273!2d52.5441879!1m5!1m1!1s0x47c62b202ae17a0f:0x1abd001f5225a013!2m2!1d5.7290961!2d52.5190013!1m5!1m1!1s0x47c62b202fc55b65:0x12f835f420fa2676!2m2!1d5.7298615!2d52.5194267!1m5!1m1!1s0x47c62a8ab5ae23a5:0x44f1928143db42a1!2m2!1d5.7085273!2d52.5441879';
$encoded_url = urlencode( $map_url );
我正在尝试生成包含 Google 地图路线的二维码图像。例如,我有以下 Google 地图 URL:
$encodedmapsurl = https://www.google.nl/maps/dir/De%20Aar%2018,%208253%20PN%20Dronten/De%20Lepelaar%2012,%208251MT%20Dronten/De%20Lepelaar%201,%208251mt%20Dronten/De%20Aar%2018,%208253%20PN%20Dronten/
然后我生成 Google 图表二维码,如下所示:
<img src="https://api.qrserver.com/v1/create-qr-code/?data=$encodedmapsurl&size=150x150" />
我得到了以下二维码:
这很好,但是,当我使用移动应用程序扫描二维码时,结果是:
请注意,URL 本身包含 URL 中每个 space 的 %20,但结果(扫描二维码后)却没有。这导致无法点击 URL。考虑到某些 QR 代码生成器在扫描后确实在 URL 中包含 %20,例如 this 一个,这种行为很奇怪。 Google 图表 QR 码 API 有什么办法可以在扫描后将 %20 包含在 URL 中吗?或者,我也可以使用另一个 PHP library/API 来完成这项工作(我找不到)。结果应如下所示:
首先尝试 formally encoding it as a url:
$encodedmapsurl = "https://www.google.nl/maps/dir/De%20Aar%2018,%208253%20PN%20Dronten/De%20Lepelaar%2012,%208251MT%20Dronten/De%20Lepelaar%201,%208251mt%20Dronten/De%20Aar%2018,%208253%20PN%20Dronten/";
$encodedmapsurl = urlencode($encodedmapsurl);
此外,然后尝试在生成二维码之前将编码的 url 发送到 bitly 或类似的缩短器。
如果还是不行,在日本我经常发现特殊字符会导致许多 hard-to-find/fix 问题(例如 1 位“%”与 2 位“%”字符)。尝试使用 charset-source (and charset-target) parameter.
只编码一次:
$map_url = 'https://www.google.nl/maps/dir/De+Aar+18,+8253+PN+Dronten,+Netherlands/De+Lepelaar+12,+8251+MT+Dronten,+Netherlands/De+Lepelaar+1,+8251+MT+Dronten,+Netherlands/De+Aar+18,+8253+PN+Dronten,+Netherlands/@52.5308376,5.7062268,14z/data=!3m1!4b1!4m25!4m24!1m5!1m1!1s0x47c62a8ab5ae23a5:0x44f1928143db42a1!2m2!1d5.7085273!2d52.5441879!1m5!1m1!1s0x47c62b202ae17a0f:0x1abd001f5225a013!2m2!1d5.7290961!2d52.5190013!1m5!1m1!1s0x47c62b202fc55b65:0x12f835f420fa2676!2m2!1d5.7298615!2d52.5194267!1m5!1m1!1s0x47c62a8ab5ae23a5:0x44f1928143db42a1!2m2!1d5.7085273!2d52.5441879';
$encoded_url = urlencode( $map_url );