gm_xmlhttprequest 中正确处理 euc-jp 编码显示日文
在使用 gm_xmlhttprequest 请求一个编码为 euc-jp 的网站时,如果想要正确显示日文,需要正确处理 euc-jp 编码。然而,使用 encoding.min.js 转码后往往会出现乱码。
解决方案:
以下是处理 euc-jp 编码并正常显示日文文字的步骤:
const ab2str = (arraybuf, encodetype) => { var decoder = new textdecoder(encodetype); var u8arr = new uint8array(arraybuf); return decoder.decode(u8arr); };
修改后的代码如下:
GM_xmlhttpRequest({ method: "GET", url: "https://seesaawiki.jp/av_video/d/%c6%e1%b2%ec%ba%ea%a4%e6%a4%ad%a4%cd", responseType: "arraybuffer", // Get response as ArrayBuffer onload: function(response) { if (response.status >= 200 && response.status < 300) { // Convert ArrayBuffer to EUC-JP string const eucJpString = ab2str(response.response, 'EUC-JP'); // Do something with the EUC-JP string console.log(eucJpString); } else { console.error("Error fetching data:", response.status); } }, onerror: function(error) { console.error("Request error:", error); }, });