blob: ef87f60e89e6bf876c96e7a26f39d8665032137c [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/fml/platform/win/wstring_conversion.h"
#include <codecvt>
#include <locale>
#include <string>
namespace fml {
using WideStringConverter =
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t>;
std::string WideStringToUtf8(const std::wstring_view str) {
WideStringConverter converter;
return converter.to_bytes(str.data());
}
std::wstring Utf8ToWideString(const std::string_view str) {
WideStringConverter converter;
return converter.from_bytes(str.data());
}
std::u16string WideStringToUtf16(const std::wstring_view str) {
static_assert(sizeof(std::wstring::value_type) ==
sizeof(std::u16string::value_type));
return {begin(str), end(str)};
}
std::wstring Utf16ToWideString(const std::u16string_view str) {
static_assert(sizeof(std::wstring::value_type) ==
sizeof(std::u16string::value_type));
return {begin(str), end(str)};
}
} // namespace fml