如何按优先级或按字母顺序对Request.UserLanguages数组进行排序?

时间:2014-02-13 05:25:29

标签: asp.net localization internationalization http-headers httprequest

我从MS documentation知道Request.UserLanguages数组已“排序”。他们没有说的是数组是按优先级还是按字母顺序排序

例如,如果我的Accept-Languages标题如下所示:

Accept-Language: gr, en-gb;q=0.8, en;q=0.7

优先级排序为“gr”,值为1,后跟“en-gb”,值为0.8,然后“en”为0.7。

字母排序将是“en”,“en-gb”,“gr”。

我无法弄清楚如何测试这个。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

Accept-Language 标题中项目显示(以逗号分隔)的顺序是它们将出现在 UserLanguages 属性中的顺序。 “; q = xx”部分未经特殊处理。您可以使用Fiddler之类的工具对服务器提交任意Accept-Language标头并查看UserLanguages属性的结果来对此进行测试。

如果您想查看HttpRequest.UserLanguages的特定实现,可以查看related .NET Framework source code