Mercurial > hg > orthanc
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"; |