油猴脚本_网页gbk_转码utf8
油猴 编写函数,GM_xmlhttpRequest 读取网页内容,内容不是utf8,是GB18030, 转换内容编码为 utf8
要在油猴(Tampermonkey)脚本中处理非UTF-8编码的网页内容,如GB18030,并将其转换为UTF-8,你可以使用TextDecoder和TextEncoder API。
但是,需要注意的是,直接在油猴脚本中修改网页的编码可能并不直接可行,因为网页的编码通常是由服务器指定并在浏览器层面处理的。
以下是一种可能的解决方法,它利用XMLHttpRequest(或fetch API)来获取网页内容,并使用TextDecoder将其从GB18030转换为UTF-8,最后将转换后的内容展示在页面上。这适用于你希望对特定资源或API返回的数据进行编码转换的情况。
// ==UserScript== // @name 网页内容编码转换GB18030到UTF-8 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 尝试将网页内容从GB18030编码转换为UTF-8编码 // @author 你的名字 // @match 你希望运行此脚本的网页URL // @grant GM_xmlhttpRequest // ==/UserScript==
(function() { ''use strict'';
// 修改此URL为你希望获取和转换编码的资源URL const targetURL = ''你希望转换编码内容的网页或资源的URL'';
// 使用GM_xmlhttpRequest (或 fetch API,如果你更倾向于使用它并且油猴版本支持) GM_xmlhttpRequest({
method: "GET", url: targetURL, responseType: ''arraybuffer'', // 重要:以arraybuffer接收数据以便正确处理二进制数据
onload: function(response) {
// 使用TextDecoder将GB18030转换为UTF-8 const decoder = new TextDecoder(''gb18030''); const decodedText = decoder.decode(new Uint8Array(response.response)); // 转换完成,decodedText即为UTF-8编码的文本 // 下一步根据你的需求处理这些文本,例如将其显示在页面上 console.log(decodedText); // 示例:将转换后的文本显示在新弹出的窗口中 const newWindow = window.open(); newWindow.document.open(); newWindow.document.write(`${decodedText} `); newWindow.document.close(); }
});
})();
|
|