电话从电话超链接拨错号码

5
我们收到了一份投诉,称有些访问者在拨打联系我们的电话时拨错号码。
我们网站的页脚中有以下形式的超链接:
Call us at <a href="tel:+4712345678">12345678</a>

请注意,"+47"(国际代码)在视觉上并未显示,仅包含在超链接中。但现在似乎有一定数量的人(大约每天一个)实际上正在拨打一个私人本地号码:47123456。考虑到我们业务的规模,这并不多,但对接收这些电话的家庭来说仍然是一个重大麻烦。

打电话的人说他们只是按了拨号链接。

还有其他人遇到过这些问题吗?是否有人知道哪些手机不支持tel超链接?有什么解决方案建议吗?(除了更改我们或他们的电话号码,当然。)

2个回答

2
智能手机选择电话号码的方式有所不同。有些是读取您网站上的文本,有些使用标签。
在我的第一次尝试中:我会将+47添加到显示的电话号码中;在我的第二次尝试中(或同时进行):我会用0047替换+47(这是挪威吗?)。
在发布之前,我想到了第三个想法:Web服务器采用哪种编码方式?HTML/PHP页面的源代码采用哪种编码方式?两者都是UTF-8还是其他方式?也许您的服务器发送的方式与网站创建的方式不同,某些智能手机可能无法正确处理它。

我建议将+47替换为0047。 - Juan Lago
编码不应该是问题,页面模板(XSLT文件)、服务器设置和HTML输出都是UTF-8。我会尝试用0047替换它(是的,这是挪威)。很遗憾,并非每个国家都使用00作为国际访问代码。如果我没记错的话,美国使用011,而芬兰(我们的邻国)使用09x。 - Peter

0
这里的问题非常简单:这是URL编码。
+字符是URL中的保留字符,表示空格。
要获取实际的+符号,请将其替换为URL编码版本:%2B
有关详细信息,请参见以下链接: Wikipedia W3Scools

1
这并不简单。加号是由RFC强制规定的。请参阅https://dev59.com/RpPfa4cB1Zd3GeqPBEr1 - Peter Brittain
虽然RFC明确规定应使用字面上的“+”,但某些浏览器可能存在错误实现,将“+”解释为空格字符。请注意,只有一小部分访问者拨错号码,因此犯这个错误的不是最受欢迎的浏览器。 - Peter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接