unicode: add variants for zero-terminated input

Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
Simon Rozman 2023-08-24 13:58:55 +02:00
parent be83f36082
commit b0b0a91729

View File

@ -132,6 +132,23 @@ namespace stdex
strcpy(dst, src.data(), src.size(), charset); strcpy(dst, src.data(), src.size(), charset);
} }
///
/// Convert string to Unicode string (UTF-16 on Windows)
///
/// \param[in] src String. Must be zero-terminated.
/// \param[in] charset Charset (stdex::charset_id::default - system default)
///
/// \return Unicode string
///
inline std::wstring str2wstr(
_In_z_ const char* src,
_In_ charset_id charset = charset_id::default)
{
std::wstring dst;
strcat(dst, src, SIZE_MAX, charset);
return dst;
}
/// ///
/// Convert string to Unicode string (UTF-16 on Windows) /// Convert string to Unicode string (UTF-16 on Windows)
/// ///
@ -266,6 +283,23 @@ namespace stdex
strcpy(dst, src.data(), src.size(), charset); strcpy(dst, src.data(), src.size(), charset);
} }
///
/// Convert Unicode string (UTF-16 on Windows) to string
///
/// \param[in] src Unicode string. Must be zero-terminated.
/// \param[in] charset Charset (stdex::charset_id::default - system default)
///
/// \return String
///
inline std::string wstr2str(
_In_z_ const wchar_t* src,
_In_ charset_id charset = charset_id::default)
{
std::string dst;
strcat(dst, src, SIZE_MAX, charset);
return dst;
}
/// ///
/// Convert Unicode string (UTF-16 on Windows) to string /// Convert Unicode string (UTF-16 on Windows) to string
/// ///