comparison UnitTestsSources/UnitTestsMain.cpp @ 2907:0204af4ece6a

Remove invalid characters from badly-encoded UTF-8 strings
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 30 Oct 2018 13:53:29 +0100
parents 2a504fef4ed7
children 9d277f8ad698
comparison
equal deleted inserted replaced
2906:2a504fef4ed7 2907:0204af4ece6a
442 ASSERT_EQ(0x62, static_cast<unsigned char>(utf8[12])); 442 ASSERT_EQ(0x62, static_cast<unsigned char>(utf8[12]));
443 ASSERT_EQ(0x63, static_cast<unsigned char>(utf8[13])); 443 ASSERT_EQ(0x63, static_cast<unsigned char>(utf8[13]));
444 ASSERT_EQ(0x00, static_cast<unsigned char>(utf8[14])); // Null-terminated string 444 ASSERT_EQ(0x00, static_cast<unsigned char>(utf8[14])); // Null-terminated string
445 } 445 }
446 446
447
448 TEST(Toolbox, FixUtf8)
449 {
450 // This is a Latin-1 test string: "crane" with a circumflex accent
451 const unsigned char latin1[] = { 0x63, 0x72, 0xe2, 0x6e, 0x65 };
452
453 std::string s((char*) &latin1[0], sizeof(latin1) / sizeof(char));
454
455 ASSERT_EQ(s, Toolbox::ConvertFromUtf8(Toolbox::ConvertToUtf8(s, Encoding_Latin1), Encoding_Latin1));
456 ASSERT_EQ("cre", Toolbox::ConvertToUtf8(s, Encoding_Utf8));
457 }
458
459
447 TEST(Toolbox, UrlDecode) 460 TEST(Toolbox, UrlDecode)
448 { 461 {
449 std::string s; 462 std::string s;
450 463
451 s = "Hello%20World"; 464 s = "Hello%20World";