Closed weitanx closed 1 year ago
@weitanx 请问本地Hosts文件是否包含中文字符?
@weitanx请询问本地Hosts文件是否包含中文字符?
之前 hosts 文件中包含中文注释,现在我把中文注释全部删除后还是会出现 "gbk错误"的提示。
那你在SwitchHosts软件里边的系统Hosts中的第一个红点是什么?UTF-8的文件头?
我完全可以适配utf-8编码,不过Windows下的HOSTS好像是不能用utf-8的。
witchHosts软件里面的系统Hosts中的第一个红点是什么?UTF-8的文件头?
我完全可以配utf-8编码,不过Windows下的HOSTS好象是不能用utf-8的。
我修改了hosts 文件的编码格式为 无 BOM 的 UTF-8,点击 写入hosts 可以正常写入了,但是会出现下列问题
我看了一下我的win7系统hosts文件是默认UTF-8格式的
@weitanx 对于空行的问题,我个人建议你试试把整个HOSTS文件全部清空然后再写入
如果hosts中已有谷歌翻译的host,程序默认是会替换掉原来设置的IP,但谷歌翻译的host在文件中的位置不变。
还有,正常就是写入第一个IP,为了访问速度不会写入多个IP(后面可能会考虑加个选项供用户自行设置)。
@weitanx针对空行的问题,我个人建议你试把整个HOSTS文件全部清空然后重新写入
如果hosts中已有谷歌翻译的host,程序默认认为会替换掉原始设置的IP,但谷歌翻译的host在文件中的位置不变。
还有,正常就是写入第一个IP,为了访问速度不会写入多个IP(后面可能会考虑添加一个选项供用户自行设置)。
前提条件: 已下载更新为最新版本,hosts 文件内容已清空
存在问题: 在hosts 文件内容已清空的前提下, 第一次点击 "写入hosts"按钮 会从第三行开始写入,紧接着会出现第4、5空行 从第二次开始 每点击一次 "写入hosts"按钮,(如果hosts中已有谷歌翻译的host,程序默认认为会替换掉原始设置的IP,但谷歌翻译的host在文件中的位置不变)括号中的内容正常执行的前提下,都会追加一个新的空行
截图报错,并不是因为GBK报错,而是因为BOM (Byte Order Mark) 头报错
文件开始的地方有三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码
学会修改hosts的用户,动手能力并不差,软件帮他把hosts文件打开就行,以及准备域名translate.googleapis.com
解析列表就好
写入文件,就让用户自己操作就好了,无非是复制、粘贴、保存罢了。
网络拨测工具 : https://boce.aliyun.com/detect/http
网络拨测工具测试地址:(这里也能找到很多谷歌在大陆的IP地址)
https://fonts.googleapis.cn/css?family=Google+Sans
https://fonts.gstatic.cn/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2
dig fonts.googleapis.cn
dig fonts.gstatic.cn
114.250.65.34 translate.googleapis.com
我是通过这个地址 https://www.haah.net/archives/8704.html 来到这里的
执行拨测结束以后,打开WEB控制台,执行下面的代码就可以获取IP列表
花括号也是代码的一部分,用花括号包起来的意思,是为了隔离作用域,可以多次执行
{
let list = []
let table_body = document.querySelectorAll('#app .show-detection-data .ping-result-area .next-table-body table tbody tr')
table_body.forEach((value, key, parent) => {
let row = [];
value.querySelectorAll('td').forEach((v) => {
console.log(v.innerText)
row.push(v.innerText)
})
list.push(row)
})
// 优化: 要做的就是 查找和排序
//取第二列数据
let new_list = list.map((value) => {
return value[1]
})
//去重
let ip_list = Array.from(new Set(new_list))
console.log(ip_list)
//下载文件
let blob = new Blob([JSON.stringify(ip_list)], {type: "text/txt"});
let url = window.URL.createObjectURL(blob);
let a = document.createElement("a");
a.style.display = "none";
a.href = url;
a.download = 'google-ip-' + (new Date()).toISOString() + '.txt';
a.click();
setTimeout(function () {
window.URL.revokeObjectURL(url);
}, 3000);
}
@jingjingxyk 感谢分享
@weitanx 现在编码问题已经解决了,我专门开了一个新的issue #4 来解决空行问题,大家可以到那里去讨论。
系统环境:Windows 10 家庭中文版 22H2 19045.2311 复现步骤:点击 写入hosts 时,出现 gbk 编码错误提示