Локаль для использования в нижнем регистре значений HTTP в Java - PullRequest
0 голосов
/ 23 января 2020

Если языком пользователя по умолчанию является turki sh, i становится строчной буквой ı. Это проблематично c, потому что я хочу включить коды языка и страны моего пользователя в мой заголовок Accept-Language, но OkHttp допускает только значения заголовка ASCII . Я понимаю, что Accept-Language исторически не учитывал регистр, но мне приходится взаимодействовать с сервером, который мне не принадлежит, который ожидает значения заголовка Accept-Language только для строчных букв. Какую локаль я должен использовать для строчной буквы только для машины?

1 Ответ

0 голосов
/ 23 января 2020

Я не нашел официальной документации Java, в которой говорилось бы о гарантированном машинно-инвариантном поведении строчных букв.

В документации Apple говорилось о en_US_POSIX:

Если вы работаете с датами фиксированного формата, вы должны сначала установить для локали форматера даты нечто подходящее для вашего фиксированного формата. В большинстве случаев лучшим языком для выбора является en_US_POSIX, язык, специально разработанный для получения результатов US Engli sh независимо от пользовательских и системных предпочтений. en_US_POSIX также является неизменным во времени (если США в какой-то момент в будущем изменит способ форматирования дат, en_US изменится, чтобы отразить новое поведение, но en_US_POSIX не будет), и между платформами (en_US_POSIX работает на iPhone OS так же, как на OS X и на других платформах.

en_US_POSIX доступно в Java с new Locale("en", "US", "POSIX"). Я не знаю, насколько это гарантировано.

...