Opera 9.x 网页简体中文显示错误临时解决之道

(首先要说的是本文只针对网页设计者和Opera使用者而写,无关者请无视,不要主动弹出来喊“用什么浏览器的飘”,我会让你的留言一起飘到数据库地狱去。)

before

接下来谈谈店长这个小发现,自从Opera 9发布以来店长就一直被它奇怪的中文渲染所困扰,字体大小不一,比重也变化多端(见上图),无论使用页面CSS进行怎样的定义,始终没办法改变它的渲染行为。无奈之下只得放弃Opera,换用Firefox。如今FF早已经成为我的首选,但Opera的问题依旧困扰着我。

直到我发现了这个页面

症状描述:Opera 9.x在使用简体中文的系统上(Windows和Linux)渲染中文字体时字符集选择错误,准确的说,是将简体中文用繁体字符集渲染。

影响范围:部分简体中文系统,平台不限;出现问题的页面编码为utf-8;Opera 9.2系列(当前稳定版本)均有可能出现此问题,9.5开发版我没有测试。

解决办法

这里分为两个部分谈,首先说网页设计者怎样绕过这个问题

之前提供的链接也解释了,Opera之所以会选择和CSS内设定font-family不同的字符集是因为国际化(i18n)的需求,浏览器在页面没有设定特定语言(lang属性,几乎可用在任何html元素上)的会自行决定字符集,这个决定无法通过CSS更改。

要让Opera分辨简体字和繁体字也简单,在html元素上添加lang属性即可,用"zh-hans"作为值,按照W3C说法这比zh_CN的更受认可;如果是XML文档可以顺便加入xml:lang="zh-hans",以免Opera的检查过于严格,两者都符合(X)HTML标准,可并存。

如果你只想页面上部分元素使用简体字渲染,也请参考之前的链接,里面有详细的HTML+CSS范例。

解决了设计者的困挠,用户又该如何让Opera正确渲染没有加入lang属性的页面呢?

User Javascript,Opera很早就支持类似Firefox上Greasemonkey的自定义JS功能,它的设定在工具->首选项->高级->内容的栏目下,设定一个文件夹,Opera会读取里面所有的.js文件。我们只要写一个简单的JS来实现为没有lang属性的页面增加正确属性即可,以下实际代码。

// ==UserScript==
// @include http://www.google.cn/*
// ==/UserScript==
document.addEventListener(
'load',
function () {
var lang = document.getElementsByTagName("html")[0].getAttribute("lang");
if(!lang) {
document.getElementsByTagName("html")[0].setAttribute("lang","zh-hans");
}
},
false
);

用过Greasemonkey的同学应该很熟悉这个设计了,我稍微解释一下,顶部注释部分负责限制代码运行的域名,在这里我限制了代码在google.com的域名下才运行(白名单)。

Opera提供了自设的几个强大的Event Listener,但这里我们只要用Javascript DOM的即可,默认设定是在页面读取完毕之后添加lang属性,也就是字体会在页面读取完毕后修正。肯定有更好的做法,但本人JS水平有限,想不到更快更准Fire的方式,有熟练者请赐教。另外input元素的中文字体无论使用哪种方式还是不变,不知道是不是bug,对与我这类开发者来说这已经不是问题了。

最后顺便一提,如果你要在HTTPS这种加密页面内用User Javascript(例如Google Reader),opera:config内User JavaScript on HTTPS的选项必须打开,默认是关闭的。

after

这样一来Opera 9.x在简体Windows上老难题也解决(大半)了,浏览器公国的再度恢复平静。其实Linux上也可用同样的伎俩,只不过它们有更快捷的办法——env lang=zh_CN。

更新:Opera:Config里Force Encoding也是非常重要的值,设置成AUTODETECT-ZH应该可以;店长的设置不知道为什么变成AUTODETECT-JP了,至此input元素的显示问题也解决。我建议有同样问题的旅客先检查你的Force Encoding和首选项里的字体设定(菜单中文显示可以通过设置字体为宋体解决),然后看查看栏目里的用户自定义风格是否无意中启动了(Opera可以覆盖页面CSS),最后再考虑用上诉的解决办法;网页开发者则可在页面里加入lang属性,方便浏览器更好的语言支持。

同胞们,要冷静。

这种灾难不可能不涉及政治,更难不夹杂个人情感,我本希望避免谈类似的话题;但眼看着正规报道之外的无根据流言层出不穷,店长忍不住想为政府申辩。本人的能力仅限于捐助灾区,救人的工作现在只有前线战士能完成——至少让无为的我在网上多帮帮忙,也许你认为“表态”这种援助方式很冷血,但店长现在只有表态的能力。

客栈地图

店长和众多网民一样,常带着放大镜看中央领导人的发言。看新闻发言多了,就会明白避重就轻,官腔官调在我党是家常便饭。然而这次温总理的发言却给我完全不同的感受,尤其是他“同胞们,要冷静……同志们,你们辛苦了”那两句,仿佛是在压抑着自己身为高层却不能拯救人民的愧疚。说实话,这两句比那些“获得抗灾的全面胜利”有感染力多了。

但随着死亡人数的上升,有关政府部门失职的言论也开始在网上流传,仿佛1万人的死亡都变成了地震局的失误。仅仅因为没能正确预报地震,就要他们代替自然灾害背上谋财害命的罪行,说得过去么?我与这些奉行“强制责任制”的网民持不同观点,以下是我自己的分析。

我记得美国一家报纸在9.11发生5周年到纽约街头随机采访了数千人,问他们认为9.11事件是不是美国政府策划的战争阴谋,其中10%的人回答了“是”的选项。为什么会有这种阴谋论存在?该报纸的分析结论是“美国人无法接受本土被恐怖袭击的事实”,长期以来“领土安全”的光环被打破,许多人选择了逃避——相信阴谋论,只有美国政府才能整死美国人。

我觉得国内的“问责潮”和9.11阴谋论相仿,这么严重的死伤,已经完全超出大部分人的预测,想起年初造成更大经济损失的雪灾也和政府行动迟缓有关,又考虑到历史上政府的反应机制均偏慢,脑中的矛头逐渐摆正:政府失职和末日电影般的死伤数有关系!然而事实是什么?事实是就算我们立马剁了地震局那群人这地震也已经发生,而且毫无疑问今后还会发生,天气预报尚模棱两可,问责地震更加困难。

如果说中国在处理有关地震信息的方式上真有什么不足,我认为还是信息控制过于严格,上述的流言蜚语,只要我们允许多一点新闻自由度,也就不攻自破了。不过这是另一个话题了。

话说回来,1万多人死亡,而且数字是肯定还要翻倍,谁能轻易接受?没人,我宁愿天天听官腔也不愿在灾后听实话。这就是底线,如果我们的领导层连这点主次都不分,中国就不是中国了,应该叫缅甸二号;而这个地震也不该是汶川,应该是唐山。

于是就有了第二个讨论,中国应该主动向国际寻求援助。

汶川重灾区的公路绝大多数被破坏,没有地面车辆代步,加上天气恶劣影响空中支援,汶川地区的援救工作受阻。放在30年前,没有互联网,没有数十家电视台,信息流通量低,自然对援救工作的开展不清楚;如今的网络新闻更新极快,48小时已经是非常漫长的时间了,我们却连灾区都没摸遍,这自然会挑起信任危机。

是我们政府为了面子故意抵制援助吗?是我们政府为了增加民信故意打肿脸充胖子吗?店长看不到任何有充分根据的解释,无论是为了救人还是为了奥运,如果现在寻求国际援助能加快控制大局,政府一定会选择这种方式。这已经不是唐山的时代,即便是对政府非常“多质疑”的我也相信“国家安全”并非我们没主动寻求援助的主要缘由。

无论今后数日中国政府是否积极寻求援助,重灾区的工作人员依旧会是军人,如何在人类生存极限到来前尽可能救人是当务之急,我相信政府会在这个基础上做选择。

人容易在眼前的悲剧中陷入迷惘和绝望,请冷静,同胞们,就算你没办法为灾区做出什么贡献,也请至少给政府一点信任;任何政治因素都不能阻隔我们血管里流淌着的人性

PS:捐款的地址在此略过,有心的话Google或打开电视就能看到。

祝愿各位旅客无恙,

大众软件 vs Niko Partners,你信哪边?

来自大众软件2008年初发布的中国电脑游戏产业报告取样范围):

根据我们从单机代理发行商及渠道商得到的数据统计,2007年出品的单机游戏产品市场总额为9761.8万元(含07年之前出品的持续销售产品),这比 2006年1.73亿元的市场额下降了近1/2。这说明在2007年,单机游戏的市场份额仍在持续下降,这也与部分单机游戏代理商没有在2007年推出新品有关。

——2007年单机游戏市场总规模

来自Niko Partners前日发布的2008 China Videogame Market Annual Review & Forecast(取样范围类似,但Niko Partner是在今年3月采集样本):

Piracy remains an issue for packaged software via digital downloads and counterfeit copies of games, but legitimate sales of packaged offline PC games surged 56% in 2007, over 2006. Chinese gamers are showing that they like to buy the legitimate copies to ensure quality and to get customer support.

翻译:非法下载和伪正版的问题依旧,但正版PC游戏的销量依旧比2006年上升了56%;中国玩家购买正版游戏的原因包括“质量保证”和“售后服务”。

——GamasutraGamespy部分翻译

我们可以对比下两者的可信度。双方都是第六年制作类似的报告,也都对中国市场规则非常熟悉。大众软件是大众媒体,在收集公司信息上可能更强;反观Niko Partners是专职市场分析,靠数据分析为生的他们会调查的更广,他们的数据采集量也是大软读者调查的两倍(75,000 vs 30,663,虽然无法平行比较内容)。

客栈以前也撰写过很多次有关国内单机游戏销量的报告:2005年无论是大众软件还是Niko Partners都记录了双位数的销量下滑;次年Niko Partners开始录得28%的回升,大众软件收集的数据也大幅度反弹;然而到2007年两者却出现如此大的差距,何解

这里顺便找来第三份报告作为对比,由中国出版工作者协会游戏出版物工作委员会(GBC)与国际数据公司(IDC)联合制作的2007年中国游戏产业调查报告,他们站在Niko Partners一边,指出:

2007年,中国单机游戏市场出版发行新单机游戏68款,与2006年的70款基本持平。2007年,中国单机游戏市场实际销售收入为7350万元人民币,比2006年的6500万元人民币增长13.1%。

小结

大众软件:1.73亿元 -> 9761.8万元,下降50%左右

Niko Partners:904,000份 -> ?份(准确数据未发布),上升56%

GBC+IDC:6500万元 -> 7350万元,上升13.1%

以上数据均只限大陆地区,均只包含PC单机游戏,建立在2007年游戏平均售价与2006年并无明显变化的基础上,到底是谁搞错了?我们的单机游戏还有没有翻身的日子?

有鉴于政策的限制,多年来店长的猜测都偏向悲观,今年却有两份报告站在单机游戏复苏的一方,我们该相信多数派呢?还是支持老朋友大软?数据的真实性我们没办法检测,有什么“动机”促使他们忽悠我们?

Continue reading “大众软件 vs Niko Partners,你信哪边?”

Weekly: Happiness Guaranteed 本周娱乐精华 Issue.17

怎么回事?失踪已久的娱乐精华光荣回归?没错旅客们,由于店长工作繁忙,偷工减料的本周娱乐精华又跑回来充当灭火队长的救星角色了。4月末开始热身,准备5-6月的活地狱,客栈周末估计不会有休息时间,长篇大论越发困难,各位就原谅我们以图代文吧(跟我念:管它黑图白图,能娱乐的就是好图)。

myads

后世人称这个圣婴为泉總次郎,原文没你想象的有趣。

anyads

其教育意义是深刻的,抱枕做平面广告近乎无本经营。

Continue reading “Weekly: Happiness Guaranteed 本周娱乐精华 Issue.17”

The Art of Cultural Export – 文化输出的艺术

前言:人文奥运,此等国家大事显然不是小小比特客栈能独力承担的,除非本拉登发布自拍视频支持人文奥运,这将是店长最后一次提及此词条。既然是最后的晚餐,我们不妨将话题扩展下,说说中国是怎么在人文奥运的宣传战中处于严重下风的。

唉

各位不妨为可能影响你健康的下文做好心理准备,现在合眼,深呼吸,想象你是一位北欧的年轻人,职业是写字楼文员或小学教师,平常喜欢和朋友出去喝两杯,偶尔上网咀嚼头条新闻,要不就在工作地点旁的星巴克里品味报纸。总之,虽算不上富裕,你的生活总还平静,甚至有个异性密友常伴左右。

你是否喜欢清闲生活和本文无关,重要的是接下来的故事。假如最近你喜爱的报纸/网站上常常提到北京与奥运等等关键词,你毫无疑问会将两者联系起来。“对啊,奥运又到了”,你对自己说,或许还会联想到“和另一半恋爱也是4周年”之类的话题,你也许会真心祝福北京好运,就像祝福自己的爱情。

但不知从哪天开始,那些用北京奥运打头的文章却开始以西藏骚乱结尾,你感到疑惑,不解甚至有被欺骗的感觉,就像那个一边送你中国制礼物一边“偷吃”的前任情人。人是适应力非常强的动物,你迅速建立了臆断的自我保护思维,虽然不像那些上街撒野的朋友般主动,你还是暗地里排斥这国家办的奥运。

Continue reading “The Art of Cultural Export – 文化输出的艺术”

鼠年春季新番启示录(更新完毕,评分修正)

“就当东姬欣梵来访客栈的记忆仿佛还在夜色迷茫的街道尽头摇曳,淳叽忻帆的身影却已经闪现在对门酒吧的转角下。不经意间,店长整个季度的人生就在忙碌的日间大堂管理与挑灯夜战题海中度过,新番,游戏和Akibablog并购案都显得那么短暂而平淡,难以抹去的,只有时间在他年少无知的心中撒下的种种伤痕。”

以这种低俗言情小说当作同人文贩卖的绝望先生在败走麦城,不对,是败走东京国际展示场(Comiket)之后开始了他的绝望旅行。不想就在春季新番开锣的档期,他居然来到客栈寄宿了,不好容易见到店长这位以文会友的同胞,绝望激活了大范围的吐苦水攻击。

与此同时,来自异国他乡的泉此方同学也时常通过Pidgin与店长交流新番感想。但他深知她是醉翁之意不在酒,一切皆起于此方家新购入的DVD刻录机罢工,才每天蹭着店长要对传春季新番片源的……由于这两人本来毫不相干,店长并没有将他们介绍给对方的打算。

不是启示录的启示录

谁知绝望这家伙居然乘店长不在客栈的时候偷用他的手提电脑上网(绝望行凶的时候,店长正在3条街开外的女子中学张贴女仆招募公告),去豆瓣这种大众化的阅读分享网不说,还和等着传动画的此方对练起动漫文学情操!结果两人一聊如故,擦出火花,才会导致昨天店长不得不召开三方远程圆桌会议,以满足他们切磋新番感想的热切盼望……

没办法,鉴于有旅客从物质上赞助了这次新番对话录,在下不得不打起精神完成圆桌会议的整理报告。以下是那天晚上的案件重演(无删减无打码无消音)。

Continue reading “鼠年春季新番启示录(更新完毕,评分修正)”

WordPress 2.5新后台的24小时使用日记

wordpress 2.5 logo

我推荐WordPress”。店长的信仰,被WordPress 2.5狠狠唾弃了。

说实话店长已经非常接近给本篇文章加入Total Disaster标签的忍耐极限了——WP2.5我越用越搞不清楚开发团队以什么任务为重。WordPress团队专门漏过2.4版,协同Happycog全力开发后台,新版本却制造了更多不可理喻的设计问题,实在令人费解;同时许多来自2.3时代的问题却没有得到解决,难道将bug遗留给新版本是WordPress的新口号?我一直是WordPress的忠实用户,但2.5让我重新考虑自己的爱是否得到尊重,你不信?这里记录着店长自己24小时内的酸甜苦辣。

0:20am – 完成本地测试,没有发现插件异常,决定装修客栈

0:25am – 更新文件完毕

0:26am – 进入后台,被要求更新数据库,照做。

wordpress 2.5 interface 01

Continue reading “WordPress 2.5新后台的24小时使用日记”

比特客栈宣布恶性收购Akibablog

比特客栈股东大会对此表示欢迎

人革连娱民日报,现人类地球联邦新闻发卡社四月一日讯:

亚洲最大型御宅理疗戒萌中心2.0——比特客栈,在31日融资22亿农大现金券,以每股高达22.73万农大元的价格购入日本岛最大型御宅沉迷意淫中心2.0——Akibablog,78%的股权。最大股权持有者geek集团董事长geek先生在新闻发布会上称这是日本岛有史以来最大宗的抱枕及cosplay服收购案,涉及动漫人物35,249位,影响岛内御宅约800万名。

另有消息指在新闻发布会过程中有部分示威御宅闯入会场,高呼秋独(秋叶原独立)的口号并焚烧ToHeart系列抱枕。对此比特客栈发言人笑面男不做任何评论,但他强烈谴责极少数煽动ACG资本主义帝国分裂的不法分子,称他们为“电车痴男中的伪善者,和谐手办商的最大敌”。

比特客栈董事长兼大堂管理员店长则在接受电台采访时表示,这次恶性收购不仅有助于加速全球人类脱宅化进程,更有效减少深夜纸巾使用量,对保护南美热带森林有长远影响。在回答听众提问时店长亦承诺将谨慎考虑Studio e.go!,Leaf和KEY等游戏厂商的收购蓝图,强调“DVD-Box三尺高”并非“一日之萌”。

简讯,