Путевской Виктор (vipernn) wrote,
Путевской Виктор
vipernn

Categories:

Рабочее.

Неожиданно выяснилось, что в библиотеке STL имя файла для чтения или записи можно задать только обычной строкой (символ равен одному байту). Все бы ничего, но кириллица не всегда дружит с обычными строками. Поэтому для надежности надо использовать "широкие" строки с двухбайтовыми символами (Unicode, например). Соответственно надо преобразовать двухбайтовую строку в однобайтовую. Функции преобразования отдельных символов в обоих направлениях существуют. А вот для целых строк такого не предусмотрено. Через некоторое время нашел способ преобразования через специальный класс-конвертор. Даже написал над ним функции обертки - ws2s и s2ws. И тут-то выяснилось, что все гораздо проще. Оказывается можно просто вызвать конструктор обычной строки, передав в него указатели (итераторы) на первый и следующий за последним символы, то есть begin() и end() и конструктор сделает все сам как надо. Аналогичным образом можно сделать и обратное преобразование. То есть все очень просто на самом деле.

З.Ы. А вот почему при задании имени файлов нет возможности использования "широких" строк совершенно непонятно.
Tags: it, интересное, полезное, программирование, рабочее, странное
Subscribe

  • Екатеринбург 2021. Часть 28.

    Из-за полной неопределенности с расписанием автобусов до аэропорта, поехал на такси. Как и при поездке из аэропорта, а аэропорт доехали быстро,…

  • Даты круглые и не совсем круглые

    Смотрим на календарь, а там 21 июня... 1781 год. Родился Симеон Пуассон (Siméon Denis Poisson), французский математик, физик и механик. 1797 год.…

  • Екатеринбург 2021. Часть 27.

    И это заключительная часть про собственно Екатеринбург, но будут еще продолжения с географией по пути домой. Фото с вечерней заключительной прогулки.…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment