У меня есть возможность работать с разными языками, и в последнее время я сталкивался с проблемами при проверке строк. Во многих случаях строки, которые я получил от переводческой группы, чем-то отличаются от строк, которые мы получаем с веб-сайта, даже если они выглядят одинаково.
Например:
import org.apache.commons.codec.binary.StringUtils;
@Test
public void test() {
String actual = "pouze v angličtině.";
String expected = "pouze v angličtině.";
byte[] bytesactual = StringUtils.getBytesUtf8(actual);
byte[] bytesexpected = StringUtils.getBytesUtf8(expected);
System.out.println(Arrays.toString(bytesactual));
System.out.println(Arrays.toString(bytesexpected));
Assert.assertEquals(bytesactual, bytesexpected);
}
Тест завершается неудачно с результатом:
[112, 111, 117, 122, 101, 32, 118, -62, -96, 97, 110, 103, 108, 105, -60, -115, 116, 105, 110, -60, -101, 46]
[112, 111, 117, 122, 101, 32, 118, 32, 97, 110, 103, 108, 105, -60, -115, 116, 105, 110, -60, -101, 46]
Тест никогда не проходит, так как после "v" стоит несколько разных символов. Пользователь переднего плана читает то же json, что и я для тестов, но каким-то образом символы были искажены. В настоящее время мой обходной путь - открыть json и скопировать / вставить то, что я получил с веб-сайта, и заменить его, но поскольку это происходит много и много раз, я ищу программное решение c для этой проблемы вместо замена строк json. Любые идеи? Спасибо.