【问题标题】:Which format of "en_US" and "en-US" should be used in Http header request as Accept-Language?Http头请求中应使用“en_US”和“en-US”的哪种格式作为Accept-Language?
【发布时间】:2014-12-16 07:32:18
【问题描述】:

我实际上测试了这两种格式,我的服务器都可以。由于Http header fields 说“en-US”是格式,而我的本地 java 类返回“en_US”,我有点困惑到底要使用哪一个!

我的部分代码是这样的:

// set accepted language
            List<String> acceptedLanguages = null;
            final Locale defaultLocale = Locale.getDefault(); // en
            if (defaultLocale != null)
            {
                final String defaultLang = defaultLocale.toString(); // en_US
                if (!TextUtils.isEmpty(defaultLang))
                {
                    acceptedLanguages = new ArrayList<String>();
                    acceptedLanguages.add(defaultLang);

                    // Always add en as fallback if applicable
                    if (!HttpClient.DEFAULT_ACCEPTED_LANGUAGE_COUNTRY.equals(defaultLang))
                    {
                        acceptedLanguages.add(HttpClient.DEFAULT_ACCEPTED_LANGUAGE_COUNTRY);
                    }
                }
            }

            String header = HttpClient.getAcceptLanguageHeader(acceptedLanguages); // like: cz_CH;q=1.0, en_US;q=0.9
            this.mHttpGetRequest.addHeader(HttpHeaders.ACCEPT_LANGUAGE, header);

如果用户的设备语言不是en_US,则getAcceptLanguageHeader() 方法将en_US;q=0.9 添加到字符串中。

任何想法将不胜感激。谢谢。

【问题讨论】:

    标签: java android http-headers http-accept-language


    【解决方案1】:

    我相信连字符“-”被接受为 HTTP 标准的一部分,而下划线“_”将被拒绝。请参阅W3C HTTP v1.1 Standard, Header Field Definitions, Section 14.4 Accept-Language 了解更多信息。

    注意:W3C 代表 万维网联盟

    【讨论】:

    • 感谢您的参考 ;)
    • @Hesam:不用担心。很高兴我能帮助你! ;)
    【解决方案2】:

    “en”ISO 639指定的语言代码。而 US 是 3166 指定的国家代码。 在 Java 中,Locale 对象将语言识别为 languageCode_countryCode(例如 en_US)而不是 languageCode-countryCode

    更多信息请参考this

    【讨论】:

    • 是的,我之前在stackoverflow.com/a/4632943/513413 看到过你的回答,但我的问题与 Http 标头有关,如果“en_US”传递到后端而不是“us-US”会发生什么。
    猜你喜欢
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多