Wo auch immer die Ressource herkommt, der Browser muss sie zunächst lesen. Dabei gibt es eingebaute Mechanismen, die zuerst die Zeichenkodierung aus den offiziellen Angaben zu entnehmen versuchen und anschließend raten. Außerdem kann man oft noch händisch die Kodierung wählen. Wenn du allerdings aufgrund von Mechanismen beim "Einlesen" (wie auch immer das stattfindet) gar nicht händisch umstellenkannst, ist alles zu spät.
Das befürchte ich leider auch. Dann muss der User halt die Kodierung korrigieren und ich kann ihn nur durch eine Fehlermeldung darauf hinweisen.
Serverseitige Verarbeitung steht nicht zur Verfügung? Die könnte die Bytes einzeln lesen und wie auch immer interpretieren, was Javascript von Haus aus nicht kann.
Nein, die Library läuft vollkommen autark im Browser. Kein AJAX o.ä.