модульный тест показывает, что 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 в этом отношении?