Вы можете получить набор ( ноль или более ) сокращений временного диапазона (как указано в базе данных tz ), которая соответствует данному смещению UTC :
#!/usr/bin/env python
from datetime import datetime, timedelta
import pytz # $ pip install pytz
utc_offset = timedelta(hours=5, minutes=30) # +5:30
now = datetime.now(pytz.utc) # current time
print({now.astimezone(tz).tzname()
for tz in map(pytz.timezone, pytz.all_timezones_set)
if now.astimezone(tz).utcoffset() == utc_offset})
set(['IST'])
Если вы хотите получить аббревиатуры, включая исторические данные:
#!/usr/bin/env python
from datetime import datetime, timedelta
import pytz # $ pip install pytz
utc_offset = timedelta(hours=5, minutes=30) # +5:30
abbr = set()
now = datetime.now(pytz.utc)
for tz in map(pytz.timezone, pytz.all_timezones_set):
dt = now.astimezone(tz)
tzinfos = getattr(tz, '_tzinfos',
[(dt.utcoffset(), dt.dst(), dt.tzname())])
abbr.update(tzname for off, _, tzname in tzinfos if off == utc_offset)
print(abbr)
]
set(['IST'])
, глядя на исходный код Request.java , он заметно заявляет:
/**
* Default encoding for POST or PUT parameters.
* See {@link #getParamsEncoding()}.
**/
private static final String DEFAULT_PARAMS_ENCODING = "UTF-8";
убедитесь, что файл с исходным кодом (как правило, имеет небольшой индикатор внизу прямо в Android Studio) и размещенный контент имеет кодировку UTF-8
(это довольно распространенная проблема в веб-разработке, которая может также применяться здесь). в случае, если контент не имеет кодировки UTF-8
, его необходимо преобразовать перед публикацией, чтобы не получить заменяющий символ �
. см. этот пример для преобразования String
.
также проверяют кодировку сценария, соединение с базой данных и базу данных на стороне сервера один раз; если какой-либо из них не поддерживает UTF-8
, он не будет работать. это не обязательно проблема на стороне клиента (которая должна поддерживать UTF-8
из коробки).