gpt4 book ai didi

google-chrome - 浏览器使用什么信息来创建 Accept-Language 字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:07:32 24 4
gpt4 key购买 nike

我正在尝试获取尽可能多的有关访问网站的用户的区域信息。使用例如将 IP 映射到国家/地区ipinfo.io 是一种方法,但我也在探索 Accept-Language header 。在 PHP 中使用 HTTP_ACCEPT_LANGUAGE 获取它。请问有人知道这个是怎么计算的吗?我知道这取决于浏览器,并且实现方式因浏览器而异,但是是否有一些可用的文档或关于此的有趣文章?

我使用的是 Linux,我的操作系统语言是英语,我的键盘布局是瑞典语。对于 Chrome,我看到了这个字符串:

en-US,en;q=0.8,nl;q=0.6,sv;q=0.4

这表明我对英语和瑞典语感兴趣,这是有道理的,但那里也有荷兰语,这可能是从哪里来的?

对于 Firefox,我只看到:

en-US,en;q=0.5

有人对此做过更多研究吗?关于如何获取有关网站访问者的区域信息的任何其他提示或评论?

谢谢!

最佳答案

这可能取决于浏览器和平台。在 unix 类型的操作系统上,您可以使用 locale 命令找到系统区域设置:

$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=

您也可以使用相同的命令或通过 OSX 系统首选项应用程序进行设置。浏览器可能会默认为系统区域设置,但其中大多数还会为用户提供一种在浏览器中更改其首选项的方法。参见 http://www.w3.org/International/questions/qa-lang-priorities.en.php以获得良好的概述。

下面是一些看起来与设置实际接受语言 header 相关的 chrome 代码:https://code.google.com/p/chromium/codesearch#chromium/src/ui/base/l10n/l10n_util.cc&q=AcceptLanguage&sq=package:chromium&type=cs&l=856

这是一份与接受语言 header 相关的 firefox 错误报告,其中包含许多有趣的讨论以及与设置 header 相关的差异链接:https://bugzilla.mozilla.org/show_bug.cgi?id=1054739

这是一篇 mozilla 开发人员文章,其中提供了有关 accept-language header 和一些相关 header 的一些详细信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation

最终,accept-language 由用户控制(并且有很多浏览器扩展可以快速修改它),因此虽然检测用户的语言偏好很有用,但不一定会告诉您有关他们位置的任何信息。您可以将它与其他信息结合起来,例如用户的时区(可从 javascript 获得),但如果您真的想要位置信息,那么可以使用类似 http://ipinfo.io 的信息。是您最好的选择。

关于google-chrome - 浏览器使用什么信息来创建 Accept-Language 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29006030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com