[081011] View Source in External Editor Bugfixer 0.9b ……
屈超(沙滩凉鞋) 发表于 2008 年 10月 12 日 1 时 00 分
好久没空来写点儿东西了……
今天给带来昨天刚完成的一款 Firefox 扩展……
习惯在 Firefox 里使用外部编辑器查看 HTML 源码……
然而它一直都存在这样一个 Bug ……(如图)

这个 Bug 在 Window 下所有版本的 Firefox 都存在……
原因十分简单……
Firefox 将源代码存到 windows 的 temp 文件夹后……
忘了给文件名转码……
此时源码文件的文件名是 non-unicode 编码的……
而在 Firefox 内部却是 unicode 的……
等你执行 View Page Source 命令后……
Firefox 将文件名作为参数发送给你所设置的外部编辑器……
编辑器当然找不到源码文件路径……
这也解释了为何我们可以用外部编辑器正常打开英文网站的源码……
实上在 Bugzilla 上是可以找到相关的 Bug 报告……
比如以下两个:
https://bugzilla.mozilla.org/show_bug.cgi?id=172817
https://bugzilla.mozilla.org/show_bug.cgi?id=408923
既然有 Bug 我们来修复就好了……
这就是我这个扩展的主要功能……
安装后它会修改与查看源码相关的相关函数……
把临时文件的文件名正确转码后才发送给你的编辑器……
这样就能正确打开了……(如图)

最后有三点需要注意……
1. 该 Bug 仅当使用外部编辑器查看源码时存在……
如果你使用 Firefox 内部页查看源码……
请无视……
如果你想从现在开始使用外部编辑器来查看源码……
请将 view_source.editor.external 设为 true ……
并把外部编辑器的路径写到 view_source.editor.path ……
2. 本扩展目前仅适用于简体中文用户……
因为我还没找到从 Firefox 里获取用户 non-unicode 默认编码的方法……
在注册表中没有找到……
有线索的朋友可以留言告诉我哟……
3. 装本扩展仅能解决 Firefox 内置的查看源码的方法……
Firebug 的 Open with Editor (打开编辑器)功能虽然使用的自建方法……
(请看清:是右键和菜单栏下的一个功能组……)
但仍然会存在乱码问题……
不同的是用 Firebug 所提供的该功能打开源码看到的是内容乱码……
因为它根本就没有对网页内容进行转码(见其 editor.js 功能)……
有兴趣的朋友可以使用 converter-output-stream 组件的 nsIConverterOutputStream 接口来修复该问题……
至于 Firebug 为何在打开文件时不存在乱码问题……
原因很简单……
它的临时文件的文件名是一水儿的 ascii 字符……(笑)
由此引出三个 Todo……
1. 下个版本会在选项面板提供一个文件浏览控件……
方便你简单地设置外部编辑器路径……
2. 自动判断用户的 non-unicode 默认编码值……
3. 考虑解决 Firebug 的外部编辑器乱码 Bug 并提交给 Firebug 官方……(已于 2008.10.15 解决,详见这篇日志)
但不确定人家要不要……
呵呵……
解决上面几个问题……
本扩展就迎来其 1.0 版本……
哦对了……
支持 2.0 - 3.0.* 的所有版本……
事实上在我的 3.2 beta pre 上也工作正常……
最后提供下载……
国外: http://www.quchao.com/projects/mozilla/firefox/extension/viewSourceInExternalEditorBugfixer.xpi
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/extension/viewSourceInExternalEditorBugfixer.xpi
userChrome.js 计划中……
但将在解决自动判断编码的问题后提供……



gowers 的评论内容:
2008 年 10月 12 日 10 时 06 分
不错,下下来看看,谢谢!
時計坂一刻館三号室 » 部落格存档 » [081015] 为 Firebug 修复外部编辑器的乱码 Bug…… 的评论内容:
2008 年 10月 15 日 20 时 13 分
[…] « [081011] View Source in External Editor Bugfixer 0.9b …… […]