& is not fixed.
And apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlEncoders.java is not the reason of this bug. It does its work good (replaces "&" -> "&" and "<" -> "<"). I managed it just putting System.out.println(str.replace("&","&").replace("<","<")) with condition that str containes "&" symbol. All strings have normally escaped html symbols "&" and "<".
The problem is in another method.
I think we need to check not the only char "&" while encoding, but the char sequence "&"...