Поделиться через


Локаль

Языковой стандарт — это настройки страны/региона и языковые настройки, с помощью которых можно настраивать программы. К числу категорий, зависящих от языкового стандарта, относится отображение форматов дат и денежных значений. Дополнительные сведения см. в категориях языкового стандарта.

setlocale Используйте функцию для изменения или запроса некоторых или всех сведений о текущем языковом стандарте программы или потока при использовании функций без _l суффикса. Функции с суффиксом _l используют переданные им параметры языкового стандарта только во время выполнения этой конкретной функции. Чтобы создать языковой стандарт для использования с функцией с суффиксом _l , используйте _create_locale. Чтобы освободить этот языковой стандарт, используйте _free_locale. Чтобы получить текущий языковой стандарт, используйте _get_current_locale.

Используется _configthreadlocale для управления тем, имеет ли каждый поток собственный языковой стандарт или все потоки в программе имеют одинаковый языковой стандарт. Дополнительные сведения см. в разделе "Языковые стандарта" и "Кодовые страницы".

Доступны более безопасные версии этих функций, в следующей таблице они отмечены суффиксом _s ("secure, безопасная"). Дополнительные сведения см. в разделе "Функции безопасности" в CRT.

Подпрограммы, зависящие от языкового стандарта

Маршрут Использование Зависимость настройки категории setlocale
atof, , _atof_l_wtof_wtof_l Преобразовать символ в значение с плавающей запятой LC_NUMERIC
atoi, , _atoi_l_wtoi_wtoi_l Преобразовать символ в целочисленное значение LC_NUMERIC
_atoi64, , _atoi64_l_wtoi64_wtoi64_l Преобразовать символ в 64-разрядное целочисленное значение LC_NUMERIC
atol, , _atol_l_wtol_wtol_l Преобразовать символ в значение long LC_NUMERIC
_atodbl, , _atodbl_l_atoldbl_l_atoldbl_atoflt,_atoflt_l Преобразовать символ в значение double-long LC_NUMERIC
is, isw подпрограммы Проверить данное целое число на указанное условие. LC_CTYPE
isleadbyte, _isleadbyte_l Проверить на старший байт LC_CTYPE
localeconv Прочитать соответствующие значения для форматирования числовых величин LC_MONETARY, LC_NUMERIC
MB_CUR_MAX Максимальная длина в байтах любого многобайтового символа в текущем языковом стандарте (макрос определен в STDLIB.H) LC_CTYPE
_mbccpy, ,_mbccpy_l_mbccpy_s,_mbccpy_s_l Скопировать один многобайтовый символ LC_CTYPE
_mbclen, , mblen_mblen_l Проверить и вернуть количество байтов в многобайтовом символе LC_CTYPE
strlen, , wcslen_mbslen_l_mbslen_mbstrlen,_mbstrlen_l Для строк многобайтовой кодировки: проверить каждый символ в строке; вернуть длину строки LC_CTYPE
mbstowcs, ,_mbstowcs_lmbstowcs_s,_mbstowcs_s_l Преобразовать последовательность многобайтовых символов в соответствующую последовательность расширенных символов. LC_CTYPE
mbtowc, _mbtowc_l Преобразовать многобайтовый символ в соответствующий расширенный символ. LC_CTYPE
printfФункции Записать форматированные выходные данные LC_NUMERIC (определяет вывод символа системы счисления)
scanfФункции Прочитать форматированные входные данные LC_NUMERIC (определяет распознавание символа системы счисления)
setlocale, _wsetlocale Выбрать языковой стандарт для программы Нет данных
strcoll, , wcscoll_strcoll_l_mbscoll_wcscoll_l,_mbscoll_l Сравнить символы двух строк LC_COLLATE
_stricmp, , _wcsicmp_stricmp_l_mbsicmp_wcsicmp_l,_mbsicmp_l Сравнить две строки без учета регистра LC_CTYPE
_stricoll, , _wcsicoll_stricoll_l_mbsicoll_wcsicoll_l,_mbsicoll_l Сравнить символы двух строк (регистр не учитывается) LC_COLLATE
_strncoll, , _wcsncoll_strncoll_l_mbsncoll_wcsncoll_l,_mbsncoll_l Сравнить первые n символов двух строк. LC_COLLATE
_strnicmp, , _wcsnicmp_strnicmp_l_mbsnicmp_wcsnicmp_l,_mbsnicmp_l Сравнить символы двух строк без учета регистра. LC_CTYPE
_strnicoll, , _wcsnicoll_strnicoll_l_mbsnicoll_wcsnicoll_l,_mbsnicoll_l Сравнить первые n символов двух строк (регистр не учитывается) LC_COLLATE
strftime, , wcsftime_strftime_l_wcsftime_l Форматировать значение даты и времени в соответствии с предоставленным аргументом format LC_TIME
_strlwr, _wcslwr, _mbslwr_strlwr_l_wcslwr_l_mbslwr_l_strlwr_s_strlwr_s_l_mbslwr_s_mbslwr_s_l_wcslwr_s_wcslwr_s_l Преобразовать "на месте" каждую прописную букву в указанной строке в нижний регистр LC_CTYPE
strtod, , _strtod_lwcstod_wcstod_l Преобразовать строку символов в значение double LC_NUMERIC (определяет распознавание символа системы счисления)
strtol, , wcstol_strtol_l_wcstol_l Преобразовать строку символов в значение long LC_NUMERIC (определяет распознавание символа системы счисления)
strtoul, , _strtoul_lwcstoul_wcstoul_l Преобразовать строку символов в значение unsigned long LC_NUMERIC (определяет распознавание символа системы счисления)
_strupr, _strupr_l, _mbsupr_mbsupr_l_wcsupr_l_wcsupr_strupr_s_strupr_s_l_mbsupr_s_mbsupr_s_l_wcsupr_s_wcsupr_s_l Преобразовать "на месте" каждую букву в нижнем регистре в строке в верхний регистр LC_CTYPE
strxfrm, , wcsxfrm_strxfrm_l_wcsxfrm_l Преобразовать строку в упорядоченную форму в соответствии с языковым стандартом LC_COLLATE
tolower, _tolower, towlower, _tolower_l_towlower_l_mbctolower_mbctolower_l_mbctoupper_mbctoupper_l Преобразовать указанный символ в соответствующий символ нижнего регистра LC_CTYPE
toupper, _toupper, towupper, _toupper_l_towupper_l_mbctolower_mbctolower_l_mbctoupper_mbctoupper_l Преобразовать указанный символ в соответствующую прописную букву LC_CTYPE
wcstombs, ,_wcstombs_lwcstombs_s,_wcstombs_s_l Преобразовать последовательность расширенных символов в соответствующую последовательность многобайтовых символов LC_CTYPE
wctomb, ,_wctomb_lwctomb_s,_wctomb_s_l Преобразовать расширенный символ в соответствующий многобайтовый символ LC_CTYPE

Примечание.

Для многобайтовых подпрограмм кодовая страница многобайтов должна быть эквивалентна языковому стандарту.setlocale _setmbcpс аргументом _MB_CP_LOCALE делает многобайтовую кодовую страницу той же, что и кодовая setlocale страница.

См. также

Интернационализация
Универсальные подпрограммы среды выполнения C по категориям