#ifdef _WIN32
len = ::MultiByteToWideChar(
- CP_UTF8, 0, src, static_cast<int>(srcLength), dst, static_cast<int>(dstLength));
+ CP_UTF8, MB_ERR_INVALID_CHARS, src, static_cast<int>(srcLength), dst, static_cast<int>(dstLength));
#else
CPPUNIT_TEST(testEncodeNonLatin1);
CPPUNIT_TEST(testEncodeEmpty);
CPPUNIT_TEST(testIterator);
+ CPPUNIT_TEST(testRedundantUTF8);
CPPUNIT_TEST_SUITE_END();
public:
CPPUNIT_ASSERT_EQUAL(L'I', *it2);
}
+ void testRedundantUTF8()
+ {
+ CPPUNIT_ASSERT_EQUAL(String("/"), String(ByteVector("\x2F"), String::UTF8));
+ CPPUNIT_ASSERT(String(ByteVector("\xC0\xAF"), String::UTF8).isEmpty());
+ CPPUNIT_ASSERT(String(ByteVector("\xE0\x80\xAF"), String::UTF8).isEmpty());
+ CPPUNIT_ASSERT(String(ByteVector("\xF0\x80\x80\xAF"), String::UTF8).isEmpty());
+ }
+
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestString);