↰ Return to documentation for file (include/ndef-lite/encoding.hpp)
#ifndef UTF_HPP
#define UTF_HPP
#include <codecvt>
#include <string>
#include <vector>
namespace encoding {
const uint8_t BOM_BE_1ST = '\xff';
const uint8_t BOM_BE_2ND = '\xfe';
enum class Endian { BigEndian, LittleEndian };
constexpr Endian system_endianness();
std::string to_utf8(const std::string& src);
std::string to_utf8(const std::u16string& src);
// \param src std::string source to convert
std::u16string to_utf16(const std::string& src);
std::u16string to_utf16(const std::u16string& src);
std::u16string to_utf16(const std::vector<uint8_t>& src);
std::vector<uint8_t> to_utf16_bytes(const std::u16string& src, const Endian& endian = Endian::LittleEndian);
std::vector<uint8_t> to_utf16le_bytes(const std::u16string& src);
std::vector<uint8_t> to_utf16be_bytes(const std::u16string& src);
std::u16string from_utf16_bom(const std::vector<uint8_t>& src);
bool has_BOM(const std::u16string& text);
bool has_BOM(const std::vector<uint8_t>& bytes);
} // namespace encoding
#endif // UTF_HPP