欧洲和南美用户的浏览器在渲染的JS中将坐标分隔符从句点更改为逗号



应用程序是从美国构建和提供服务的,西班牙用户正试图在仪表板上查看内置的gmap,以查看他在应用程序中的位置。gmap适用于在美国测试的所有浏览器/平台,但我得到的消息是,它不适用于此,可能也不适用于其他欧盟和南美用户,但只有少数例子。我可以在海外使用的这几台机器上随意复制。

该应用程序是使用标准PHP7.x以及包括jQuery和GoogleGMap套件在内的各种JS库编写的。

从美国运行的代码的输出是:

var default_long = '-87.584064762185';
var default_lat = '42.416435054172';

EU/SA机器的输出:

var default_long = '-87,584064762185';
var default_lat = '42,416435054172';

您会注意到,欧盟机器中的十进制分隔符是逗号,而美国是句点。这显然是一件本地化的事情,但我不确定它是如何发生的,也不知道为什么会发生。

NOT在我这边以编程方式更改它,该函数只是从数据库中提取long/lat(它有句点而不是逗号(,并转储到网页上,在那里它看起来会被用户的本地机器/浏览器更改。我最初的输出在坐标周围没有单引号,但添加了它们,希望浏览器将它们视为字符串,并忽略对它们进行本地化的尝试,但没有成功。

那么,我应该使用某种类型的Apache或PHP头来强制数字的美国本地化吗?我遇到的问题是搜索词非常模糊,所以很难找到其他有同样问题的人,我很感激你们能提供的任何帮助。

如果您正在使用json_decode,那么在某些情况下可能会导致这种情况。

将脚本中的区域设置为以下内容:

setlocale(LC_NUMERIC, 'en_US.UTF-8')

我认为LC_NUMERIC是要使用的重要标志。

有关此的更多信息,请参阅PHP文档

相关内容

  • 没有找到相关文章

最新更新