Re[2]: Есть ли iswalnum без привязки к локали.
От: Went  
Дата: 13.01.21 08:27
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Заметь, что когда программа стартует, у неё локаль "C". Это не та локаль, которая стоит у пользователя.

W>И в локале "C" нет вообще никакой кириллицы или юникода.
Ну, в винде же с локалью по умолчанию iswalnum русские буквы пропускает... То есть это глюк винды? А макось делает все верно?

W>Программы, которым хочется использовать пользовательскую не зря вызывают при старте setlocale(LC_ALL, "").

Этот код установит пользовательскую? Но, все равно, я так понимаю, это мне не поможет? Даже если главный язык стоит русским?

W>То есть это разные задачи.

W>Если нужно определить класс юникод-символа по его же номеру в юникод-таблице, то нужно брать библиотеку для работы с юникодом.
То есть iswalnum и прочие подобные функции для моей задачи не годятся? Понятно.

W>https://stackoverflow.com/questions/11107608/whats-wrong-with-c-wchar-t-and-wstrings-what-are-some-alternatives-to-wide/11107667#11107667

Постараюсь разобраться, спасибо

W>В некотором смысле wchar_t сломан везде. Он не подходит для работы с юникодом. Этот тип как раз про локали.

W>Нужно использовать ui32 для codepoints, и что-нибудь вроде utf8 для строк (ну или utf16, utf32, где надо).
Это теоретически или практически? В вижуале wchar_t имеет размер в 16бит. Разве этого недостаточно для того, чтобы записать любую реальную букву? Ну, пускай, с небольшими ограничениями? Или есть опасность, что где-то wchar_t будет вообще 8бит?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.