如何处理euc-jp编码的gm_xmlhttprequest响应以显示日文字符?
在使用gm_xmlhttprequest获取编码为euc-jp的网站数据时,直接显示结果或使用encoding.min.JS进行解码后,日文字符可能会出现乱码。
要解决此问题,可以使用以下方法:
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", // 以ArrayBuffer形式获取响应 onload: function (response) { if (response.status >= 200 && response.status < 300) { // 将ArrayBuffer转换为EUC-JP字符串 const eucJpString = ab2str(response.response, 'EUC-JP') // 对EUC-JP字符串进行处理 console.log(eucJpString) } else { console.error("Error fetching data:", response.status) } }, onerror: function (error) { console.error("Request error:", error) }, })
使用此方法,可以将arraybuffer以euc-jp编码转换为字符串,从而正确显示日文字符。