2008年12月8日星期一

阿海文本文件工具箱1.2版

这是一个功能强大、操作简单的文本处理器,它包括了文本文件分割、合并,文本替换,繁简中文转换,编码格式转换等多种功能。
功能说明:
1.2 版改进
增加分割功能的设置,包括:
1、可设置分割后文件路径
2、增加自定义文件命名方法
如设置为new_(*).txt,则分割后的文件为new_1.txt,new_2.txt,……。如果没有设置,则按原来的命名规则。
3、可为分割后的文件加入前置文本和后置文本
如可在前置文本中存入文本
在后置文本中存入文本

则分割后的文件可直接生成htm网页文件。
------------------------------------
1.1 版改进
1、增加智能识别文本编码开关
2、增加工具条
------------------------------------
.....

本软件完全免费
需要.net framework 2.0支持。
版权所有:ahaiEmail:ahai333@163.com网址:http://www.ahaisoft.cn/
下载地址: 阿海文本文件工具箱1.2
解压密码 www.ahaisoft.cn

2008年12月4日星期四

CNN专访温家宝总理全文

以下是美国《新闻周刊》国际版主编法里德·扎卡里亚专访中国总理温家宝的全部记录。该访谈录制于9月23日,部分内容曾在9月28日的“法里德·扎卡里亚全球扫描”节目中播出。本站全文译出,以促进东西方的交流和理解,并重现这场据说广受西方人称道的访谈,因为它充分展现一个大国领袖的言谈风范。

  扎卡里亚:那么,我们这就开始这场正式访谈了。
  温总理:开始访谈之前,我想让你知道我会用发自内心的话回答你的问题,也就是说,对你提出的所有问题,我都将有一说一。我经常对人说,有时候我可能没有说出我的想法,但只要我说出来,那么我说的都是真实的。我想你正在采访的是一位政治家,同时他也是一个普通人物。我习惯对话而不乐于长篇大论,所以你可以随时打断我,提出你的问题。这无疑会让我们的对话更加愉快。
  扎卡里亚:我期待这次谈话的机会,首先我要感谢您给我们这次访谈机会并让我们感到荣幸。我要问的第一个问题,我想也是许多人想知道的。您怎么看当前这场影响美国的金融危机?您是否因此而认为美国模式有许多我们刚刚才意识到的缺陷?
  温总理:我是6年前担任中国总理一职的,在此之前我是副总理。在副总理的任上,我经历了另一场金融危机不过发生在亚洲。亚洲金融危机爆发后,中国采取了积极的财政政策并决定人民币不贬值。通过这一举措,我们成功地克服了诸多困难。不过,现在美国的问题是由次级信贷危机引发,随后房利美和房地美出现问题,雷曼兄弟集团、美林证券、美国国际集团也相继陷入困境。这些大型的投资银行和保险公司都出现了系统性问题。
  这让我感到发生在美国的这场危机产生的影响可能波及全球。不过,面对这场危机,我们也必须认识到今天的世界不同于1930年代人们生活的那个世界。因此,我们这一次应当携手共赴危机。如果美国的财政和经济体系出了问题。那么其影响不仅在美国,而且在中国,在亚洲,乃至整个世界都会感受得到。
  我注意到,美国政府为防止一个孤立的危机演变成系统性危机采取了一系列的政策和措施。我希望这些措施和步骤能够取得良效。我也希望这些措施和步骤不仅能够拯救美国的几个大型金融公司,也能帮助稳定美国的经济并确保美国的经济将来能够平衡发展。
  扎卡里亚:如果反观中国经济,您知道,现在有许多人认为中国经济将出现大幅下滑。许多人预测说中国经济增速可能放缓至7%。您认为这是否会发生?果真如此,我想知道您认为在中国将会出现什么样的后果?
  温总理:是的,的确如此。中国经济以年均9.6%的增速增长了30年。这是一个奇迹。特别是在2003至2007年间,中国获得了两位数的经济增长,而同时,消费物价指数(CPI)年均增长不足2%。可以公正地说中国经济实现了相对稳定和快速的经济增长。这段时间,中国一直积极地采取调控措施。我们之前的考虑是防止快速的经济增长变得过热,防止较快的物价上涨演变成明显的通货膨胀。不过,情况很快发生了变化。我指的是美国的次贷危机,以及随之而来的严重的金融震荡。
  结果,我们看到外部需求下滑,中国的国内需求在短时间内也几乎难以飞快增长。因此,中国经济确实有衰退的危险。在这种背景下,我们必须重新调整中国的宏观经济政策,以适应外部的变化。对我们来说最重要的是,实现经济增长、抑制价格上涨和控制通货膨胀之间的平衡。此外,还要保持创造就业机会和抑制通货膨胀之间的平衡。我知道实现所有这些领域的平衡是非常、非常困难的。我们需要采取灵活、谨慎的宏观经济政策来适应外部的变化,以在保持通货膨胀低水平的同时确保快速、稳定的经济增长。
  扎卡里亚:如果美国陷入严重衰退,您认为贵国还能继续增长吗?
  温总理:今年上半年,或者看看今年前八个月的统计数据,我们可以看到我们已经成功地做到了这一点。美国一旦衰退肯定会对中国经济产生影响。我们知道,10年前中美贸易额只有1026亿美元,然而今天这一数字飙升至3020亿美元,实际上增加了1.5倍。美国需求减少肯定会影响中国的出口。美中两国的财政紧密相连。如果美国的金融部门出现什么问题,我们就会担心中国资本的安全。这就是为什么从一开始我就明确表示,美国的金融问题不仅关系美国本国的利益,也关系到中国乃至整个世界的利益。
  扎卡里亚:换一种说法,就是我们相互依存。中国是美国短期国库债券的最大持有者,据估计,价值接近1万亿美元。这让一些美国人感到不安。您能否打消他们的顾虑,保证中国永远不会利用这种地位作为某种形式的武器?
  温总理:我已经说过,我们相信美国的实体经济部门仍然基础坚实,特别是高科技和基础工业。现在问题出现在虚拟经济部门。不过如果这一问题得到合理解决,那么美国仍有可能稳定本国经济。中国政府殷切希望,美国能够尽快稳定本国经济和金融。我们也希望看到美国能够持续发展,因为这将有利于中国。当然,我们担心中国在美资本的安全。不过,我们相信美国是一个值得信赖的国家。特别是在这种困难时期,中国一直向美国伸出援助之手。我们确信,这种援助将有助于稳定全球经济和金融,有助于防止全球经济和金融体系出现巨大震荡。我相信现在合作是头等大事。
  扎卡里亚:我是否可以问问您,中国在更广泛意义上的角色?许多人将中国视作一个现实的超级大国。他们困惑,为什么中国不更加积极地参与政治解决诸如达尔富尔问题、伊朗及其核抱负问题?人们希望,中国能够成为--用时任美国副国务卿罗伯特·佐利克的话来说--一个负责任的利益攸关者;希望中国能够更积极地参与处理世界政治问题,但到目前为止中国表现并不积极。您会如何评价这种情况?
  温总理:回答这个问题之前,我需要首先纠正你提问中的措辞。中国现在并不是一个超级大国。尽管中国有13亿人口,尽管自改革开放以来,中国连年取得相对快速的经济和社会发展,但中国仍然存在着不同地区之间、城乡之间的发展不平衡问题。中国仍然是一个发展中国家。我们仍然有8亿农民生活在农村,数千万人没有脱贫。事实上,中国还有6000多万城乡居民依靠基本生活补贴为生。而且,每年我们需要为2300万左右的城市失业者和大约2亿进城务工的农民担责。我们需要不懈地努力,认真解决这些问题。我们需要做大量的工作来解决我们自身的问题。中国不是一个超级大国。这正是我们需要集中精力专注于自己的发展、努力改善人民生活的原因。
  扎卡里亚:不过,中国政府确实可以向苏丹政府、伊朗政府或缅甸政府施压,让他们冲释高压政策。贵国和这三国都有关系。
  温总理:这牵涉到你的第二个问题。实际上,中国是国际社会中一个坚持正义的国家。我们从不拿原则做交易。以你刚刚提及的达尔富尔问题为例。中国一直主张解决达尔富尔问题需要采用双重路线。中国是第一批向达尔富尔派遣维和部队的国家,也是第一个向苏丹提供援助的国家。此外,我们还努力敦促苏丹各方领导人进行接触,以尽快找到一个和平解决问题的方案。
  扎卡里亚:您是否认为,如果伊朗得到核武器将会给整个世界带来威胁?你认为世界应当如何作为来努力避免出现这种可能?
  温总理:我们不支持伊朗出现核武器。我们认为伊朗有权基于和平目的开发利用核能。不过,伊朗开发核能的努力必须遵守国际原子能机构的保证条款,而且伊朗不应该发展核武器。中国在伊朗核问题上的立场是鲜明的。我们希望围绕这一问题展开对话予以解决,希望我们能够敦促伊朗当局放弃发展核武器的想法,承担国际个原子能机构的保障条款责任。尽管如此,我们希望能够利用和平谈判来实现这一目的,而不是肆意诉诸武力或以武力相威胁。这就像处理两个人之间的关系。如果一方试图将另一方逼上绝路,那么可能适得其反。这将无助于解决问题。我们的目的是解决问题,而不是尝试将另一个逼入困境的话,那么结果反而达不到。那将无助于解决问题。我们的想法是解决问题,而不是加剧紧张态势。
  在这里,我也向你提出一个问题:难道你不认为中国在解决朝核问题上付出的努力,以及我们在这一问题上采取的立场,实际上已经帮助朝鲜半岛的局势一天一天好转吗?当然,我知道仍然需要时间寻求一个完全、彻底的朝核问题解决方案,在此基础上帮助实现东北亚的安全和稳定。不过,我想强调的一点是,我们采取的方式和付出的努力,证明在方向上是正确的。
  扎卡里亚:我很荣幸您问我这样一个问题。总理阁下,我想告诉您,中国在朝鲜问题上的努力一直为美国和全世界所赞赏。当然这更使人们希望中国能用与在朝鲜同样有效的方式积极参与其他领域,因为我们从中看到了效果。
  温总理:我们从几年来的六方会谈中获得了不少经验和教训。六方会谈取得进展也得益于六方之间的密切合作。
  扎卡里亚:我可以问您有关另外一组可能的会谈吗?达 赖 喇嘛此前表示,他现在似乎愿意接受中国统治西藏,接受在西藏施行社会主义制度。他所寻求的是文化自治和一定程度的政治自治。这组会谈显然局限于(流亡)藏人和中国政府之间的较低层次上。您为什么不利用您的权力和谈判技巧亲自处理这一问题呢--为中国人民,当然还包括生活在中国的西藏人民的利益计,您或胡锦涛主席可以直接同达赖喇嘛进行谈判,一劳永逸地解决这一问题。
  温总理:我们和达赖喇嘛的问题并不是一般意义上的民族、宗教或文化问题,而是一个关系到是捍卫中国的统一还是容许分裂国家活动的重大原则问题。在对待达赖喇嘛问题上,我们必须采取两条路径。一方面,我们承认达赖喇嘛是一个宗教领袖,他在西藏、特别是在信奉佛教的地区有一定的影响力。但另一方面,我们也不洗认识到,他不是一个普通的宗教人士。达赖喇嘛建立的所谓流亡政府实行神权统治。这个所谓的政府的目标是将西藏从中国分裂出去。
  达赖喇嘛在世界许多地方不停地鼓吹所谓“大西藏”自治思想。实际上,达赖喇嘛追求的这种所谓“自治”的真实目的是利用宗教干涉政治。他们企图将所谓的“大西藏”从祖国分裂出去。许多美国人并不知道这个所谓的“大西藏”到底有多大。实际上,它包括西藏、四川、云南、青海和甘肃,共计5省区。其覆盖面积占中国领土的四分之一。
  几十年来,我们对达赖喇嘛的政策一直没有改变:即只要达赖喇嘛愿意承认西藏是中国领土不可分割的一部分,只要达赖喇嘛放弃分裂活动,我们愿意同他本人或他的代表进行接触和谈判。
  现在,谈判的结果取决于他是否有诚意。1950年代西藏事件[叛乱]之后,中央政府的最高领导人,邓小平先生也会见过达赖喇嘛的代表。
  因此,我认为问题并不在于我是否同达赖喇嘛进行接触。关键是这种接触和谈判的效力问题。
  我们希望他能用切实的行动显示诚意,打破僵局。
  扎卡里亚:您希望看到达赖喇嘛采取什么样的行动来显示他的诚意?
  温总理:实际上,我已经明确表示过,我们观察任何人,包括达赖喇嘛,我们不仅察其言,也观其行。
  他的诚意就是放弃分裂活动。
  扎卡里亚:之后,您会和他会面吗?
  温总理:到那时,一切有赖于形势的发展。当然,谈判可以继续,根据谈判的进展,我们也可以考虑提升谈判级别。
  扎卡里亚:温总理,正如您所说的,贵国9.5%的经济增速持续了30年,这是历史上经济增速最快的国家。如果有人过来问您,“中国作为一个发展中国家的成功模式是什么?”您将如何回答?中国成功的关键是什么?是一种什么模式?
  温总理:这个问题很好回答。你可以想想这个事情——大约30年前,为什么中国不能像随后几十年那样快速发展?我想这归功于我们在1978年提出的改革开放政策。这就是中国成功的关键。改革开放政策大大解放了中国的生产力。
  我们还有一个重要的思想:社会主义也可以实行市场经济。
  扎卡里亚:人们会认为这是自相矛盾的。你们实行市场经济,即市场配置资源,而在社会主义制度下,一切都要集中计划。你们是如何让两者相得益彰的?
  温总理:我们经济政策的完整规划是,在政府的宏观经济指导和调控下,充分发挥各种市场力量在配置资源方面的基础作用。
  过去30年里,我们获得一条重要的经验,即确保充分发挥看得见的手和看不见的手在调控各种市场力量方面的作用。
  如果你熟悉亚当·斯密的经典著作,你就知道他有两部著名作品。一部是《国富论》,另一部是关于道德和伦理的书。前者更多地探讨的是“看不见的手”,即市场的力量。后者探讨的是社会公平和正义。在这后一本书里,亚当·斯密强调政府在国民财富再分配方面发挥调控作用的重要性。
  如果一个国家的大部分财富都集中于少数人手里,那么这个国家几乎就看不到和谐和稳定。
  同样的道理也适用于当前的美国经济。处理美国当前的经济和金融问题,不仅需要看得见的手,也需要看不见的手。
  扎卡里亚:我是否可以问您--有些美国人和欧洲人,特别是人权观察人士说,中国在过去的数年里强力压制人权,他们一直希望奥运会能够带来中国的开放,不过它带来的是更多的压制。您如何看待这种观点?
  温总理:中国通过主办奥运会,实际上已经变得更加开放。任何不带偏见的人都会看到--也已经看到这一点。在中国,言论自由和新闻自由得到保障。中国政府重视并保护人权。我们将这些原则写入了中国宪法,我们也认真地执行这一规定。我想对于任何一个政府来说,最重要的是确保其人民享有宪法赋予他们的每项权利。包括生存权、自由权和追求幸福的权利。
  我并不认为,我们在人权方面没有缺点。在有些地方有些领域,我们确实存在着这样或那样的问题。然而我们一直不懈努力加以改进,我们希望进一步改善我们国家的人权。
  扎卡里亚:来到中国后,我住在一家酒店里。当我在电脑里敲进“天安门广场”这几个字的时候,我遇到了防火墙,有人称其为“中国功夫网”(正式译法为“中国防火墙长城”,此处采取草根译法)。如果没有在互联网上自由搜索信息的权利,那么你能说这是一个先进的社会吗?
  温总理:中国现在拥有2亿多互联网用户,许多人、甚至西方也承认中国的网络自由。不过,中国像世界上许多国家一样,为维护国家安全,也采取了一些合理的限制措施。这样做是为了安全,为了国家的整体安全,为了大多数人的自由。
  我也可以告诉你,在中国的互联网上,你可以看到许多严厉批评政府的帖子。
  我们正是通过浏览互联网上这些批评性的意见,努力找到存在的问题并改进我们的工作。
  我认为一个制度或政府不应该畏惧批评性意见或观点。只有关注这些批评,我们才可能进一步改进我们的工作,取得更大的进展。
  我经常浏览互联网了解时事。
  扎卡里亚:您喜欢哪些网站?
  温总理:我浏览了许多网站。
  扎卡里亚:诚蒙您的仁慈,我想问您一个世界上很多人都想知道的问题。有一副非常著名的、您1989年在天安门广场的照片。您从处理1989年那一问题上的经历中获得了什么教益?
  温总理:我认为,在推动经济改革的同时,我们也需要推动政治改革,因为我们的发展本质上是全面的发展,我们的改革也应当是全面的改革。
  我想,你提问的核心是关于中国的民主发展问题。我认为,就中国的民主发展而言,我们有三个领域有待改进:
  第一:我们需要渐进地改进我们的民主选举制度,这样国家权力才会真正属于人民,才会服务于人民。
  第二:我们需要改进司法制度,依法治国,建设法治国家,而且我们需要有一个独立而公正的司法制度。
  第三:政府应当接受人民的监督,这就要求我们,号召我们增强行政事务的透明性。政府接受新闻媒体和其他党派的监督同样是非常必要的。
  另外还有一个非常重要的方面,即我们需要考虑中国的国情,我们需要引入适合中国特色的制度,我们需要采取渐进的方法。
  扎卡里亚:有人说您正在研究日本的制度,因为日本是民主制度,但只有一个政党可能赢得选举。您认为这种模式适合中国吗?
  温总理:我认为世界上有三种民主形式。重要的是民主的内容。这意味着,从根本上来说,民主,重要的是这种民主形式是否真正代表人民的呼声和利益。
  我认为,社会主义是一种民主制度。没有民主,就没有社会主义。
  这种民主首先应确保人民的民主选举权、监督权和决策权。
  这种民主也应当帮助人民在一个自由和平等的环境里实现个人的全面、充分的发展。
  这种民主应当建立一个成熟的司法制度之上。否则,就可能产生混乱。这就是我们为什么需要依法治国并保障法律面前人人平等的原因。
  扎卡里亚:我们多次谈到选举。您认为25年之后,中国会举行竞争性的全国选举吗?是否有可能出现两个政党竞选像您这样的职位?
  温总理:我很难预测25年之后的事情。我相信,中国的民主将继续发展。20-30年之后,整个中国社会将变得更加民主、更加公正,司法制度将进一步改善。我们看到的社会主义将更加成熟并变得更好。
  扎卡里亚:温总理,我最后问您两个私人问题。您说您读过很多次马可·奥勒留的著作。奥勒留是一个著名的斯多葛学派哲学家。我读过他这样的话,人不应沉湎于自我,也不应沉湎于自私自利的追求,而应更加关心整个社会。最近我到中国后,我为那里个人主义、消费主义的泛滥感到非常震惊。您是否正向您的国人发出一种信号,让他们少考虑考虑个人,多关心关心社会?
  温总理:我确实多次读过马可·奥勒留的《沉思录》,他的文字深深地打动了。书中的那些人物伟大一时。他们现已随风飘逝,只留下一个故事,甚至只留下部分情节。因此,我得出结论:只有人能够创造历史,书写历史。我非常看重道德,我坚信企业家、经济学家和政治家都应多多重视道德和伦理。在我的心目中,正义是衡量伦理和道德的最高标准。当我们思考经济问题时,我们更多地想到公司、资本、市场、技术等等。我们也许忘记了某些方面,比如信仰和道德。只有当我们把这两方面结合起来,我们才能全面破解经济的本源。确实,在中国经济的发展过程中,一些公司以道德为代价追求利益。我们将永远不允许这样的事情发生,因为仅靠这种手段是不能长久的。这就是为什么我们提倡企业道德、职业道德和社会道德。
  这就是为什么上午我回答这个问题时,我说我相信经济学家的血管,我们应该看见道德的血液。我们考虑经济问题时,想的较多的是公司、资本、市场和技术等等这些实体因素。我们可能忘记了背后发挥作用的其他因素--这些因素同样受看得见的因素,比如信念和道德的影响。只有当我们把这两种因素结合起来看时,我们才能看到经济DNA的全貌。
  当然,在中国的经济发展过程中,有些公司实际上在追求利润的同时抛弃了道德,我们决不会允许这样的事情发生。
  我们不会允许以道德沦落为代价发展经济,因为这种方法决不可能长久。
  这就是我们为什么提倡企业道德、职业道德和社会道德的原因。
  扎卡里亚:阁下,请允许我问您最后一个问题。您肯定一直在关注美国大选。您对我们国家正在进行的这场陌生的竞选和选举有什么样的看法?
  温总理:美国的总统选举应当由美国人民来决定。不过我密切关注的是大选之后的中美关系。
  近年来,中美关系一直保持良好的发展势头。我们希望,无论什么人当选总统,无论什么人入主白宫,无论哪个党派赢得大选,都能继续发展同中国的关系。无论谁当总统,领导新政府,中国都希望继续推进和发展与美国的关系。
  扎卡里亚:和您的谈话非常愉快。谢谢您,总理阁下。我想您的人担心我们有点儿超时。谢谢您的友善和坦诚。
(文字原文请点击这里,视频请点击这里

2008年12月3日星期三

[转帖]对于ASP编码问题的深入研究与最终解决方案

看了这篇,会对ASP编码问题有更深的理解
出处(不知是不是原创之处,呵呵):http://hi.baidu.com/wedge/blog/item/862f5b664a071d26ab184c81.html


国际 ASP 开发 Response 对象新增了两个属性:Response.CodePage 和 Response.LCID。这些属性为动态字符串的代码页和区域设置提供网页级别的控制,而无需启用会话。Session.CodePage 和 Session.LCID 仍然可以为动态字符串的代码页和区域设置提供会话级别的控制;然而,它们不会再被 @CodePage 和 @LCID 无意中覆盖。@CodePage 和 @LCID 仍然可以影响网页中的静态字符串。默认情况下,所有这些值都隐含设定为系统默认的系统 ANSI 代码页 (CP_ACP) 和默认的系统区域设置 (LOCALE_SYSTEM_DEFAULT)。然而,如果为网站或虚拟目录设置 Metabase 属性 AspCodePage 或 AspLCID,这些属性即成为默认值。Metabase 属性允许使用特定 global.asa 文件,这些文件需要不同于系统默认值的代码页。改进的 UTF-8 支持增加了对固有对象(例如表单数据和服务器变量)中的替代字符和本地化字符的支持。
哪的资料都不如官方资料权威。今天总算从MSDN中择出了ASP编码问题的解决方案。
下面是MSDN中的一段话。
Setting @CODEPAGE explicitly affects literal strings in a single response. Response.CodePage affects dynamic strings in a single response, and Session.CodePage affects dynamic strings in all responses in a session.
这句话解释清楚了@CODEPAGE,Response.CodePage,Session.CodePage 分别的作用是什么。
@CODEPAGE作用于所有静态的字符串,比如某文件中的 const blogname="我的家"
Response.CodePage,Session.CodePage作用于所有动态输出的字符串,比如
这句话很关键的是说明了Response.CodePage的作用范围是a single response,而SXNA中声明的Session.CodePage的作用范围是all responses in a session。
再看另外一句话。
If Response.CodePage is not explicitly set in a page, it is implicitly set by Session.CodePage, if sessions are enabled. If sessions are not enabled, Response.CodePage is set by @CodePage, if @CodePage is present in the page. If there is no @CodePage in the page, Response.CodePage is set by the AspCodePage metabase property. If the AspCodePage metabase property is not set, or set to 0, Response.CodePage is set by the system ANSI code page.
这句话我乍一看,把意思理解成了这样:在sessions are enabled的时候,如果Response.CodePage没有声明,则Response.CodePage会被Session.CodePage赋值。如果sessions are not enabled的时候, 如果@CodePage已声明,则Response.CodePage会被@CodePage赋值,等等.............
这句话解释了为什么从SXNA中出来以后进入一些别的页面比如oblog,z-blog等等容易出现乱码,因为其他程序没有声明Response.CodePage而恰巧SXNA声明了Session.CodePage,因此一进入SXNA,Session.CodePage立即被赋值(版本不同,有的版本赋了936有的版本赋了65001),而后进入其他程序的时候Response.CodePage马上被Session.CodePage赋值,如果这时Response.CodePage与页面本身编码不一样的话,页面就会出现乱码。所以进入z-blog出现乱码的时候我查了当时的Session.CodePage和Response.CodePage都是936,而进入oblog出现乱码的时候Session.CodePage和Response.CodePage都是65001.就是说要想保证叶面不出现乱码,应该声明Response.CodePage,否则他就会按照Session.CodePage来解释网页(而不是按照@codepage解释网页).
如果仅仅按照上面的解释的话,我实际上是很糊涂的,因为我们都是用的中文操系统,当每一次进入浏览器的时候你可以尝试输出Session.CodePage,能看到他都是936!为什么进入Z-blog的时候他不把默认的Session.CodePage的936赋给Response.CodePage呢?反而把@CodePage给了Response.CodePage?什么情况下Session.CodePage才赋值给Response.CodePage呢?原文的sessions are enabled应该如何理解呢?
也许上面的话应该这样理解:
在Session.CodePage被任何程序声明的时候,如果Response.CodePage没有声明,则Response.CodePage会被Session.CodePage赋值。如果Session.CodePage没有被任何程序声明的时候, 如果@CodePage已声明,则Response.CodePage会被@CodePage赋值,....,最后的页面动态内容部分按照Response.CodePage的值解释。
因为Zblog和Oblog都声明了@CodePage,所以,用户刚刚启动完机器然后进入浏览器浏览Zblog和Oblog的时候Response.CodePage会被@CodePage赋值,于是叶面显示正常。
这句话进一步解释了产生乱码的原因
If you set Response.CodePage or Session.CodePage explicitly, do so before sending non-literal strings to the client. If you use literal and non-literal strings in the same page, make sure the code page of @CODEPAGE matches the code page of Response.CodePage, or the literal strings are encoded differently from the non-literal strings and display incorrectly.
其中比较有用的一句话是说如果Response.CodePage和@CODEPAGE不一样的话会产生乱码。也就是说当Z-blog的@CODEPAGE=65001而Z-blog的Response.CodePage被Session.CodePage赋为936的时候就会出现乱码,oblog反之亦然。
不知道上面说了这么多解释清楚没有-_-
下面解释一下为什么SXNA有时会把Session.CodePage赋为936,我有一个版本是这样写的:
.......
当用户进入浏览器的时候Session.CodePage默认为936,这个时候的默认936不是程序声明的,因此不会赋给Response.CodePage,当进入SXNA的时候,Session.CodePage被上面那段代码一折腾就变成了程序声明的Session.CodePage=936,因此再进入Zblog的时候就把936给了Response.CodePage。
至此,全部原因已经分析清楚了。
因此说,保证asp叶面一定不会出现乱码的代码应该是这样的:(假定是UTF-8的叶子)
进一步说明为什么要加Response.Charset,因为MSDN说应该加...呵呵
If the code page is set in a page, then Response.Charset should also be set.
另外,文件的编码格式应该与@CODEPAGE一样:
The file format of a Web page must be the same as the @CODEPAGE used in the page.
这就是为什么zblog,pjblog等一些程序要吧文件存成UTF8编码格式的原因.
综上,如果所有的程序都声明了Response.CodePage就不会被Session.CodePage干扰而出现乱码了。所以Session.CodePage还是不能轻易用的!
参考文章:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/268f1db1-9a36-4591-956b-d7269aeadcb0.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/582e6f47-52eb-413e-8b5d-c99145cb61d8.asp

2008年12月2日星期二

如何将整站asp程序由gb2312转为utf-8编码

注:此为原创,要转帖请注明出处:阿海软件园(http://www.ahaisoft.cn/ahaisoft.blogspot.com

现在国际化是大趋势,对于asp程序来说,就是采用utf-8编码。然而,由于历史等原因,现在国内许多主流的asp程序依然采用gb2312编码,实在是不利于国际化推广。

那么能不能将asp整站程序由gb2312编码转换为utf-8编码?

下面我就以老Y文章管理系统为例,向大家说明如何将asp整站程序由gb2312编码转换为utf-8编码。

第一步、将程序中所有的文本类文件编码格式由gb2312转换为utf-8

所谓文本类文件包括asp、htm、html、css、js、txt等可由记事本打开的程序。

文件编码格式转换有许多工具。推荐使用本人制作阿海文本文件工具箱(www.ahaisoft.cn),可以进行批量转换。此工具还有许多其他功能,这里说不多介绍了。

第二步、将网页中指示为gb2312编码的代码全部改为utf-8编码

下面列出需要修改的代码

Gb2312

Utf-8

charset="gb2312"

charset="utf-8

Codepage="936"

Codepage="65001"

Response.codepage="936"

Response.codepage="65001"

Response.Charset="gb2312"

Response.Charset="utf-8"

adodb.stream.Charset="gb2312"

adodb.stream.Charset="utf-8"

此外,还有FileSystemObject对象的CreateTextFile方法要注意,将第三个参数加上并设为true。CreateTextFile方法参考见最后。

完成前两步后,网站应该可以做为utf-8网站运行了。不过如果以为这样就大功告成了,那就大错特错了,还要完成第三步。

第三步、加上缺少的必要代码

Response对象默认使用的字符集为本地字符集,很多程序员在使用Response对象时都不指定其字符集,这在gb2312编码时没问题,但当转为uft-8时,就会经常出现乱码了,尤其是使用response.write语句时。因此,为了保证不出现乱码,应确保使用response对象时均明确指定了字符集,即是否调用了

Response.codepage="65001"

Response.Charset="utf-8"

这两个语句。

完成了这三步,那么恭喜你,基本上就完成了转换了,赶快运行测试吧。

如果有哪位高人还发现了其他要修改的,请告诉大家,以便更好的提高完善。

附:CreateTextFile方法参考:

CreateTextFile 方法

创建指定文件并返回 TextStream 对象,该对象可用于读或写创建的文件。

object.CreateTextFile(filename[, overwrite[, unicode]])

参数

object

必选项。应为 FileSystemObject 或 Folder 对象的名称。

filename

必选项。字符串表达式,指明要创建的文件。

overwrite

可选项。Boolean 值指明是否可以覆盖现有文件。如果可覆盖文件,该值为 True;如果不能覆盖文件,则该值为 False 。如果省略该值,则不能覆盖现有文件。

unicode

可选项。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。

说明

以下代码举例说明如何使用 CreateTextFile 方法创建并打开文本文件:

Sub CreateAfile

  Dim fso, MyFile

  Set fso = CreateObject("Scripting.FileSystemObject")

  Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)

  MyFile.WriteLine("这是一个测试。")

  MyFile.Close

End Sub

对于 filename 已经存在的文件,如果 overwrite 参数为 False,或未提供此参数时,则会出现错误。

2008年11月30日星期日

《我的黄金时代》 结尾独白

既然说到了《我的黄金时代》,就把她的结尾找出来吧
“....其实,事情的发展,平淡无奇。那天我们在学校南门见了一面,一起吃了顿饭,第二天在机场送别,到了美国之后,我们照例的每个礼拜写一封信,照例的...在一年之后中断了联系,并且顺理成章的...在三年之后收到了她的结婚照和最后一封信,信上只有一句话‘...我的第三个愿望,是希望你能够幸福的生活着...’照片上看,她比以前又漂亮了,那天晚上,我和李鑫喝了顿酒,据说,喝大了以后我哭了,不知道是缅怀还是憧憬,那是一个值得纪念的日子...”   “....我清楚的明白,我将像生活在这个城市的大多数男人一样,结婚,生子,买房子,赚票子...按照王小波同志所说的,生活,正在不可避免的走向庸俗,这么说,显得我层次不高,可是,对于这一切,我,无能为力..”

IPV6终于来了

今天朋友给了个ipv6的网站:http://video6.sjtu.edu.cn/ 上海交通大学IPV6试验站。上面有很多网络电视,台不少,教育网内速度也快,清晰度也足够,平时看NBA又有一个新的选择了。

发现上面还有一部上海交大同学拍的校园电影--《我的太阳》,然而竟是没有能坚持看完,大概终究是自己与其风格不合了吧。想起早年看的另一部校园电影,西安交大的《我的黄金时代》,虽然制作没有《我的太阳》精良,但至今仍记忆犹新,特别是影片结尾....

2008年11月28日星期五

于右任临终诗《国殇》

葬我于高山之上兮,望我大陆;

大陆不可见兮,只有痛哭。

葬我于高山之上兮,望我故乡;

故乡不可见兮,永不能忘。

天苍苍,野茫茫,山之上,国有殇。