I use UTF-8 exclusively, and this turns out to be really simple. You input the entities you need which outputs the characters which you would otherwise have difficulty typing on your keyboard. These output as the actual characters in the browser. You then copy the actual characters from the browser and paste them into your source code. This in turn makes your source code readable, because otherwise... you're absolutely right, your source code is rubbish.
I work in .NET and C# actually makes this even easier. You can enter any Unicode character using the convention "\u" followed by the four digit hexcode, e.g.
outputTestInput += "\\u00c2";
outputTestInput += "\\u00c3";
Appending these strings to the output adds a capital letter A with circumflex accent, Â, and capital letter A with tilde accent, Ã. This was how I generated a list of extended latin and non-latin characters for some test input. This was a quick way to generate a block of 16 non-standard keyboard characters in about 16 seconds and then paste the results back into the source code and create another block of characters.