我实际测试了这两种格式,我的服务器对这两种格式都没有问题。自 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
添加到字符串中。
任何想法将不胜感激。谢谢。
最佳答案
我相信连字符“-”被接受为 HTTP 标准的一部分,而下划线“_”将被拒绝。参见 W3C HTTP v1.1 Standard, Header Field Definitions, Section 14.4 Accept-Language了解更多信息。
注意:W3C 代表万维网联盟。
关于java - Http头请求中应该使用 "en_US"和 "en-US"哪种格式作为Accept-Language?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27499655/