Я пытаюсь использовать серию string.replaceAlls, чтобы поменять местами все специальные символы UTF-8 в текстовом файле с кодировкой ASCII и HTML. По пути я столкнулся с особенно упрямым: \ uAC8B, миддот UTF-8.
Вот строка, которая вырезает персонажа в половине случаев:
string_out = string_out.replaceAll("¬ï", "·");
("¬ï" - это то, как UTF-8 & middot; выглядит как расширенный ASCII. Прежде чем наткнуться на эту строку, я попробовал "\ uAC8B" и многие другие кодировки без успеха.)
Линия отсекает мидот UTF-8, она не заменяет его и делает это только половину времени. В остальное время он пропускает персонажа и оставляет его без изменений. Если я делаю несколько копий или переворачиваю другие строки, это даже не происходит.
Это похоже на проблему многопоточности, но я не знаю ни о какой многопоточности. Просто блок replaceAlls во включенном файле .jsp, запускаемом из другого файла .jsp.
Что может вызвать такое расовое состояние, как поведение?