heavy simplification, and fix(/remove) piles of error cases. Server gets to choose the charset anyway.