当我在另一个国家/地区并处于隐身状态时,Google 如何检测国籍/语言?
Posted
技术标签:
【中文标题】当我在另一个国家/地区并处于隐身状态时,Google 如何检测国籍/语言?【英文标题】:How does Google detect nationality/language while I am in another country and in incognito? 【发布时间】:2017-08-12 09:04:17 【问题描述】:我是丹麦人,但目前居住在土耳其。 我打开了一个隐身窗口来测试一个项目,Google 以丹麦语显示。据我所知,我的用户代理不包含语言,而 Geolocation 将我置于土耳其。 Google 怎么知道我会说丹麦语? Chrome 是否会发送有关我所讲语言的某种信息,即使我在另一个国家/地区和隐身模式?
【问题讨论】:
你登录了 chrome 吗?如果您检查 http 请求,它是否有一个引用丹麦语的 Accept-Language 标头? 登录 Chrome,是的。但是,它不会在隐身模式下显示。 也许登录后 chrome 会发送接受语言头。按 F12 进入开发者工具,发出请求并查看网络表。它允许检查请求的头 @CaiusJard 是的!我的浏览器正在发送一个ACCEPT_LANGUAGE
标头,其值为da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4
。这就是解决方案。
i.imgur.com/Xwouf3C.png [编辑:哎呀,你已经找到了]
【参考方案1】:
有一种方法可以检查浏览器语言:
navigator.browserLanguage: browser language
Internet Explorer 支持以下内容:
navigator.browserLanguage: browser language
navigator.systemLanguage: Windows system language
navigator.userLanguage: Windows user-specific language
也许您的浏览器设置使用您的母语。
【讨论】:
这是我在 mybrowserinfo.com 上得到的:Language:English
System Language:Not detectable with this browser
User Language:en-us
【参考方案2】:
Google Chrome 会发送一个 ACCEPT_LANGUAGE
标头,其值为 da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4
。这将允许几乎所有检查标头的网站检测所使用的语言。
它优先考虑 da-DK(丹麦语),然后是 en-US(美式英语),最后是 en(我假设是标准英语或英式英语)。
感谢Caius Jard 的建议。
【讨论】:
【参考方案3】:这对我有用:https://productforums.google.com/forum/#!topic/chrome/3MdsRLXtGi0
简而言之,更新您表示为口语的语言列表的顺序。
PS 我几乎要为这个问题寻找解决方案而发疯了。那里有很多提示,都是误导性的。我什至完全删除了我的 Chrome 历史记录。终于摆脱了芬兰语,尽管它是一种了不起的语言:)
【讨论】:
【参考方案4】:我的猜测是,Google 会记住您的 IP 地址以及最常从该地址提交的请求。这就是发生在我身上的事情,因为我总是使用同一个 ***,无论是否处于隐身模式。
【讨论】:
以上是关于当我在另一个国家/地区并处于隐身状态时,Google 如何检测国籍/语言?的主要内容,如果未能解决你的问题,请参考以下文章