Most commonly it's due to feeding ISO-8859-x
(Latin-x, like Latin-1) but parser thinking it is getting UTF-8
. Certain sequences of Latin-1 characters (two consecutive characters with accents or umlauts) form something that is invalid as UTF-8
, and specifically such that based on first byte, second byte has unexpected high-order bits.
This can easily occur when some process dumps out XML
using Latin-1, but either forgets to output XML
declaration (in which case XML
parser must default to UTF-8
, as per XML
specs), or claims it's UTF-8
even when it isn't.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…