来自:zip11 > 馆藏分类
配色: 字号:
油猴脚本_网页gbk_转码utf8
2024-04-30 | 阅:  转:  |  分享 
  
油猴脚本_网页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();
}

});

})();

献花(0)
+1
(本文系zip11首藏)