为 Firebug 修复外部编辑器的乱码 Bug……

【最近更新】

同步更新至 1.3.2 版,
并增加供 Firefox 3.1+ 使用的1.4.0a12 版本

Firefox 和 Firebug 都有类似 Bug ……
也即在外部编辑器中查看网页 HTML 源码的乱码问题……
该 Bug 在 Firebug 的历代版本中均存在……
除了 Windows 我也在 Mac 版上发现了该 Bug ……

但与 Firefox 本身的问题不同……
Firebug 采取的另外一种方式来处理……
但显然也没能够逃脱产生乱码的“厄运”……

Bug 具体的描述如下……
如果你通过 Firebug 的菜单命令配置过外部编辑器……
(Tools -> Firebug -> Open With Editor -> Configure Editors)
那么配置完毕后将在你的右键上下文菜单中显示 Open With Editor 命令组……

通过这个命令组……
你可以选择不同的编辑器对当前的网页源码进行查看和编辑……
确实非常便捷……
但是……
当你想用 Firebug 的这一功能查看任何包含有非 ASCII 字符的网页时……
你则可能遇到下面两种问题……

第一种……
当你想要查看任何包含非 ASCII 字符的线上页面源码时……
你可以正常打开它……(因为 Firebug 用 ascii 字符命名 tmp 文件)
但你看到的内容将是存在乱码的……

第二种……
当你把一个文件名中包含非 ASCII 字符的文件拖进 Firefox ……
并想要查看其源码时……
你的编辑器却连文件都无法打开……

研究 Firebug 源码后得知……
对于第一种情况……
是由于 Firebug 没有对 Unicode 的源码进行转码所致……
而第二种情况……
则是因为 Firebug 在向编辑器发送命令行参数时没有对文件名进行转码……
(如果你还想追问我为何 Firebug 的源码面板没有乱码……
我可以顺便告诉你:因为这些流程都在 Firefox 内部……)

知道了造成 Bug 的原因……
我们就可以操刀开始解决了……

对于第一种情况……
只需要将其转为 UTF-8 编码即可……
打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\firebug.js 文件……
搜索:

temporaryFiles.push(file.path);

在其下方添加代码:

// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 start
data = convertFromUnicode('UTF-8', data);
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 end


对于第二种情况……
则稍微复杂一点……
因为通过命令行发送参数到系统时需要根据系统的 non-unicode 默认编码来转码……
(由于条件所限我这里仅针对 Windows 进行修改)
比如我虽然使用英文系统……
但是为了完美支持中文我将字符集改成了 936 ……
那么我就需要将那个“乱码”文件名转为 GB2312 或 GBK……
其它语言的用户请按情况修改……(如果你看得懂的话)
同样是打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\firebug.js ……
搜索:

args.push(localFile);

在其下方添加代码:

// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 start
if ('WINNT' === getPlatformName()) {
localFile = convertFromUnicode('GB2312', localFile);
}
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 end


这样就大功告成了……
自动判断系统 non-unicode 默认编码的方法我已经找到……
有待我测试后更新……
在此之前请各位还是手动修改吧……
@081015 更新:
我今天测试的时候发现……
某些情况下 Firebug 的代码并不能完全处理 UTF8 的 BOM 头……
所以我们再写一段代码来自己清除它……
打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\lib.js ……
搜索:

var segments = [];

在其下方添加代码:

// Hacked by Chappell.Wat @ QuChao.com on 2008-10-15 start
var fileLen = stream.available();
if ('UTF-8' === charset && fileLen > 3) {
var bom = sis.readBytes(3);
if (String.fromCharCode(239, 187, 191) !== bom) {
segments.push(bom);
}
}
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-15 end


不过这样做是否会有什么副作用我暂时还不知道……
是否修改就看你个人选择了……

最后……
为懒人们提供修改完成的版本……(v1.2.1)
不堪乱码困扰的你一定要下载……
Bug 我也会提交到Firebug 的官方讨论组……
希望以后不用劳烦我们自己修改就能避开这种恼人的问题……

【更新记录】

[081015]:  提供 1.2.1 版本;
[090219]: 更新至 1.3.2 版,并增加供 Firefox 3.1+ 使用的1.4.0a12 版本;

【下载链接】

Firebug v1.3.2 for Firefox 3.1-:
国外:  http://www.quchao.com/projects/mozilla/firefox/extension/firebug-1.3.2-fx_fixed_by_quchao.xpi
国内:  http://vip.yyjoy.com/chappell/mozilla/firefox/extension/firebug-1.3.2-fx_fixed_by_quchao.xpi

Firebug v1.4.0a12 for Firefox 3.1+:
国外:  http://www.quchao.com/projects/mozilla/firefox/extension/firebug-1.4.0a12_fixed_by_quchao.xpi
国内:  http://vip.yyjoy.com/chappell/mozilla/firefox/extension/firebug-1.4.0a12_fixed_by_quchao.xpi

转载于:https://www.cnblogs.com/wpjamer/articles/4099212.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
适用范围: 淘宝客源码,淘客帝国破解版,淘客帝国商业版,PHP淘宝客源码,淘客帝国授权 演示地址: 易拍购物网,精品购物导航! 综合商城版http://G.rooferinfo.com 商城大图版http://M.rooferinfo.com 商城TOP版http://P.rooferinfo.com 热销TOP版http://T.rooferinfo.com 商城综合版http://F.rooferinfo.com 交流论坛http://bbs.rooferinfo.com 其他说明:真正的淘客帝国V5.24商业版_淘客帝国5.24稳定版_淘客帝国v5.24无限制版,迄今为止最稳定的版本。已破除域名限制,请大家放心使用 官方升级说明: 淘客帝国5.24稳定版_淘客帝国v5.24无限制版_淘客帝国专业版Taodi V5.24请及时注意官方最新更新包 淘客帝国5.24稳定版_淘客帝国v5.24无限制版 本版本增加了可以直接调用DISCUZ x2论坛和wordpress的功能。并且可以自动兼容对应文章系统的UTF-8或者GBK编码。 后台高级设置里,增加首页页面更新时间设置。可以设置综合首页的更新速度。 后台关键词导航里,增加随机数设置。如果设置不为0,将随机取关键词。 后台配置中心增加蜘蛛禁用,可以选择禁止一些蜘蛛访问。 后台配置中心增加IP禁用,可以选择禁止IP段访问。 修复选择价格范围后翻页丢失的BUG。 淘客帝国5.24稳定版_淘客帝国v5.24无限制版 本版本增加了可以直接调用DISCUZ论坛和织梦文章的功能。抛弃了原来的调用形式,只需要在配置中心指定文章系统安装目录即可调用。未来还会扩展调用文章系统类型。具体操作请看配置中心里新加的"自动整合文章"功能。 配合该调用系统,增加了一套单类别模板,可以用来调用单类别,或调用单店铺。 后台配置中心-高级设置里,增加了地区过滤字段。 首页综合配置增加了单独的排序设置。 针对单类别模板,首页综合配置内增加了卖家昵称字段,可以在单类别模板里设置调用某个淘宝店铺所有商品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值