BOM can override the encoding when decoding the response in responseText. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS xhr.responseText is "三村かな子" PASS xhr2.responseText is "三村かな子" PASS xhr3.responseText is "三村かな子" PASS successfullyParsed is true TEST COMPLETE