一連のstring.replaceAllsを使用して、テキストファイル内のすべてのUTF-8特殊文字をASCIIおよびHTMLエンコーディングで交換しようとしています。途中で私は特に頑固なものにぶつかりました:\ uAC8B、UTF-8ミッドドット。
半分の時間でキャラクターを切り取る行は次のとおりです。
string_out = string_out.replaceAll("¬ï", "·");
(「¬ï」は、UTF-8・が拡張ASCIIとして表示される方法です。この行に出くわす前に、「\ uAC8B」や他の多くのエンコーディングを試しましたが、成功しませんでした。)
この行はUTF-8ミッドドットを切り取りますが、それを置き換えるものではなく、半分の時間しか行いません。残りの半分の時間はキャラクターを見逃し、変更されません。複数のコピーを作成したり、他の行を移動したりしても、それは実行されません。
これはマルチスレッドの問題のように感じますが、マルチスレッドが発生していることに気づいていません。別の.jspから実行されているインクルードされた.jspファイル内のreplaceAllsのブロックのみ。
何がこの競合状態のような行動を引き起こす可能性がありますか?