mirror of
https://github.com/fmtlib/fmt.git
synced 2025-04-09 18:45:18 +00:00
Test UTF8ToUTF16 and UTF16ToUTF8.
This commit is contained in:
parent
089974eb92
commit
c16217bf9b
@ -230,6 +230,24 @@ TEST(UtilTest, CountDigits) {
|
|||||||
TestCountDigits(uint64_t());
|
TestCountDigits(uint64_t());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
TEST(UtilTest, UTF16ToUTF8) {
|
||||||
|
std::string s = "ёжик";
|
||||||
|
UTF16ToUTF8 u(L"\x0451\x0436\x0438\x043A");
|
||||||
|
EXPECT_EQ(s, str(u));
|
||||||
|
EXPECT_EQ(s.size(), u.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(UtilTest, UTF8ToUTF16) {
|
||||||
|
std::string s = "лошадка";
|
||||||
|
UTF8ToUTF16 u(s.c_str());
|
||||||
|
EXPECT_EQ(L"\x043B\x043E\x0448\x0430\x0434\x043A\x0430", str(u));
|
||||||
|
EXPECT_EQ(7, u.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: test UTF16ToUTF8::Convert
|
||||||
|
#endif // _WIN32
|
||||||
|
|
||||||
class TestString {
|
class TestString {
|
||||||
private:
|
private:
|
||||||
std::string value_;
|
std::string value_;
|
||||||
|
@ -244,7 +244,7 @@ void fmt::internal::FormatSystemErrorMessage(
|
|||||||
reinterpret_cast<LPWSTR>(system_message.ptr()), 0, 0)) {
|
reinterpret_cast<LPWSTR>(system_message.ptr()), 0, 0)) {
|
||||||
UTF16ToUTF8 utf8_message;
|
UTF16ToUTF8 utf8_message;
|
||||||
if (!utf8_message.Convert(system_message.c_str())) {
|
if (!utf8_message.Convert(system_message.c_str())) {
|
||||||
out << message << ": " << utf8_message;
|
out << message << ": " << c_str(utf8_message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
format.h
4
format.h
@ -467,7 +467,7 @@ class UTF8ToUTF16 {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit UTF8ToUTF16(StringRef s);
|
explicit UTF8ToUTF16(StringRef s);
|
||||||
operator const wchar_t*() const { return &buffer_[0]; }
|
operator WStringRef() const { return WStringRef(&buffer_[0], size()); }
|
||||||
size_t size() const { return buffer_.size() - 1; }
|
size_t size() const { return buffer_.size() - 1; }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -480,7 +480,7 @@ class UTF16ToUTF8 {
|
|||||||
public:
|
public:
|
||||||
UTF16ToUTF8() {}
|
UTF16ToUTF8() {}
|
||||||
explicit UTF16ToUTF8(WStringRef s);
|
explicit UTF16ToUTF8(WStringRef s);
|
||||||
operator const char*() const { return &buffer_[0]; }
|
operator StringRef() const { return StringRef(&buffer_[0], size()); }
|
||||||
size_t size() const { return buffer_.size() - 1; }
|
size_t size() const { return buffer_.size() - 1; }
|
||||||
|
|
||||||
// Performs conversion returning a system error code instead of
|
// Performs conversion returning a system error code instead of
|
||||||
|
Loading…
x
Reference in New Issue
Block a user