Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get encoding of page/iframe via JavaScript

I'd like to programatically determine the encoding of a page via JavaScript, or some other API from a browser. The reason I want this information is because I am attempting to fuzz major browsers on what character encodings they support, and obviously just because I sent the appropriate "Content-Type" doesn't mean that the browser will do the right thing with the encoding. Any other possible methods would be welcome, but I would rather not click "Page Info" for 50+ character encodings.

like image 716
Edward Z. Yang Avatar asked Nov 25 '08 20:11

Edward Z. Yang


1 Answers

Javascript can only report some of the things that are going on. Most browsers won't expose enough useful settings to you for you to base any hardcore tests on.

There are things such as document.inputEncoding, document.characterSet (non IE), document.charset, and document.defaultCharset (IE) which might get you some of the way there. But these might be as flaky as the actual support. That is, if a browser "thinks" it supports an encoding but really doesn't, isn't that something you want to know?

I think your best bet is to set up a dynamic test page with some fairly difficult characters on it (or a really large test set), load test in a browser, have the browser report back browser id string, encoding settings, original encoding request, and contents of testElement.innerHTML which you can then verify against expected results.

like image 131
Borgar Avatar answered Oct 02 '22 16:10

Borgar