StringEscapeUtils.escapeHtml / escapeHtml4 несовместим между commons-lang и commons-lang3 - PullRequest
1 голос
/ 24 мая 2019

модульный тест показывает, что StringEscapeUtils.escapeHtml / escapeHtml4 не дают одинаковых результатов.

пытается обновить commons-lang (2.6) до commons-lang3 (3.9) и обнаруживает несоответствие четности в методах escapeHtml / escapeHtml4.

for (String s : Stream.generate(()-> RandomStringUtils.random(100)).limit(100).toArray(String[]::new)) {
    String oldVersion =
        org.apache.commons.lang.StringEscapeUtils.escapeHtml(s);

    String newVersion =
        org.apache.commons.lang3.StringEscapeUtils.escapeHtml4(s);

    Assertions.assertEquals(oldVersion, newVersion);
}

я бы ожидал, что commons-lang3 StringEscapeUtils.escapeHtml4 () выдаст те же результаты, что и commons-lang StringEscapeUtils.escapeHtml (). Разумеется, этот тест превышает полный диапазон Unicode, но все же ...

org.opentest4j.AssertionFailedError: 
Expected :靂ᬧ뒼뽼㞛⼁寺ǐ弬澳��ﮒᜑ揢䈤ꮚ耳ᣛ泐䪶��늁㠌鋊劂荃❊��단ꂎ櫼㔀䯼絹䲼뎱뽚템☉钆쪄൒䷗㪨��鑺巉Ὄ䱒헓꧿㡕퟼㦰▬䟀⨈ꕓ⇊삗Շ㘵ᐟ蚳��➺컏풎쬴徊풫ᶒ咼芸ᘞ记ᣎἪ꣏陘ґ耚䂊녊ᵙ雜
Actual   :靂ᬧ뒼뽼㞛⼁寺ǐ弬澳?ﮒᜑ揢䈤ꮚ耳ᣛ泐䪶?늁㠌鋊劂荃❊?단ꂎ櫼㔀䯼絹䲼뎱뽚템☉钆쪄൒䷗㪨?鑺巉Ὄ䱒헓꧿㡕퟼㦰▬䟀⨈ꕓ⇊삗Շ㘵ᐟ蚳?➺컏풎쬴徊풫ᶒ咼芸ᘞ记ᣎἪ꣏陘ґ耚䂊녊ᵙ雜

эти символы больше не экранированы в HTML4? это не зависит от вашей кодировки? есть ли способ заставить commons-lang3 вести себя как commons-lang в этом отношении?

...