[www_logo.gif] IFRAME: http://adclient.ifeng.com/html.ng/site=phoenixtv&adsize=728x90&channel=itv&level=vfree&location=0 * 首页 资讯 财经 奥运 娱乐 时尚 健康 旅游 佛教 | 宽频 直播 免费 音频 | 博客 论坛 | IVR 短信 彩信 | 凤凰卫视 | 我的凤凰 [通行证登录] * 热门搜索词: * * ____________________ * (_) 站内 * (_) 站外 * (_) 证券 * (_) 视频 * [head_search_button1.gif] * 成佛之道 一本有内涵的书 修学的法门,不是部分的,少量的;修学成佛的道品,也不是一天,一生所能完成的。由浅而深的修学历程,经中分为种种行位,其中主要的,是欢喜…… 佛学书店 [pic_icon_arrow_01.gif] 《图解心经》 [pic_icon_arrow_01.gif] 《图解金刚经》 [pic_icon_arrow_01.gif] 《图解西藏密宗》 [pic_icon_arrow_01.gif] 《佛教图文百科》 [pic_icon_arrow_01.gif] 《南怀瑾讲演录》 [pic_icon_arrow_01.gif] 《心兵难防》 [pic_icon_arrow_01.gif] 《生活与生存》 [pic_icon_arrow_01.gif] 《金刚空行护法》 [pic_icon_arrow_01.gif] 《藏医养生》 [pic_icon_arrow_01.gif] 《佛治百病》 [pic_icon_arrow_01.gif] 《佛光菜根谭》 [pic_icon_arrow_01.gif] 《佛度有心人》 [pic_icon_arrow_01.gif] 《佛教缘起》 [pic_icon_arrow_01.gif] 《宝箧印经释》 凤凰佛教 > 觉悟 > 正文 清净心是幸福之源泉 2008年11月05日 10:03佛学智慧 【大 中 小】 相关标签 [幸福] [源泉] [清净心] 拥有一颗清净心,是幸福之源泉。 我们整天为纷繁复杂的人际关系所左右,为身外之物所烦扰,为名位所刺激,我们的心怎么净得下来呢?烦恼自然时刻也不会远离我们。 曾经有多少人感叹:难得有几天清净的日子。工作太忙了、事情太多了、应酬太多了,妨碍了清净心。如何在繁忙的生活中,一直保持清净心,我们的身体在劳碌,但心地依旧清净,一尘不染,这就是定力。《维摩诘经·佛国品》上说:“随其心境,则佛土净”清净心生智慧,纯善的心生福德,福里就有寿。纯净的心,智慧圆满,纯善的行为,福德圆满。高度智慧从禅定中来,所以佛法的修学是修定。在净土法门就是修清净心。八万四千法门、无量法门,都是修清净心的方法。 证严法师在《自我净化心灵》一文中讲了这样的故事: 有一位信佛虔诚的居士,在自家屋后开辟了一片花园,种了四季的花草。他每天都勤于修剪、整理花圃,所以枝叶茂盛、花香袭人。这位居士常将这些清雅的花送到寺院去供佛。 有一天,这位居士遇见寺院的住持无德禅师,也将花供养禅师。无德禅师很欢喜地说:“你每天都来插花、换水,确实是功德无量!佛经里说:‘以花供佛,能生生世世得庄严。’” 居士说:“我不求什么。只是每天整理花草、剪下花朵,送到寺院供佛,我的内心就会特别宁静、清凉、轻安,这是我每天喜欢来供佛的原因。” 无德禅师说:“是啊!学佛心中应无所求,当下就是清净。” 居士说:“但是回到家就会有烦恼,心不得安宁!我要用什么方法,让我的心清净呢?” 无德禅师说:“花瓶里的花经过一段时间后就会凋谢,你知道能用什么方法让鲜花保持新鲜吗?” 居士说:“要时常换水。因为花的茎浸在水中容易腐烂,无法吸收水分供给花朵,花就容易凋谢。所以必须要每天换水,并且剪掉烂掉的梗及茎,这样就能保持花的新鲜。” « 前一页12后一页 » 作者: 李煜觉   编辑: 邢彦玲 [评论] [论坛] [写博客] [我来纠错] [好友分享] * → 一村菊香 * → 财富与荣耀 幸福的谎言 * → 白岩松:慈善让我离幸福很近 * → 浇灌我们欢乐的种子 * → 给幸福划上一道浅浅的底线 >> 发表评论 如果您还不是凤凰会员,欢迎 注册 * 用户: ____________________ [_] 匿名发表 [_] 隐藏IP地址 * 添加标签: ____________________ (*添加多个标签用逗号隔开) * ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ * 发 表 * * 您要为您所发言论的后果负责,故请各位遵纪守法并注意语言文明。 * * 以上留言只代表网友个人观点,不代表凤凰网观点。 * [0108g03.jpg] 永不坠落的托林寺 * [0121g04.jpg] 冈底斯的诱惑 * [0108g06.jpg] 帕苏帕蒂那寺 * → “青灯古佛”过时了吗? * → 西方弘法经验谈 * → 居家是客 * → 佛教与环保 * → 禅宗西行 * [1duan0b..jpg] 观音形象在中土为何男变女 * [9duan0A.jpg.jpg] 厦门佛教用品展开幕式之香炉赞 * [2duan0B..jpg] 少林寺功夫易筋经之八段锦 * [ 两岸 ] * [ 观点 ] * [ 博客 ] * [ 论坛 ] * [ 觉悟 ] * [ 素食 ] * 十法界的光明大道 * 来世与轮回 * 佛教该如何进行改革 * 完美主义者与出离心 * 有效沟通减少争执 * 古刹夜静 * 《红楼梦》的佛法启示 * 释戒嗔的原创故事(新) * 人生的三重境界 * 身如浮云 心如止水 * 素食的历史 * 中国素食素菜渊源浅说 [13987.jpg] [13986.jpg] [13985.jpg] 西藏黑瞻巴拉财神 西藏藏唐卡绿财神 西藏白瞻巴拉财神 佛教彩图 More >> ·宗喀巴上师像 ·清代白度母像 ·唐卡宗喀巴上师像 ·作明佛母像1 ·作明佛母像2 ·那若空行母像 ·藏密宗喀巴上师像 ·西藏藏唐卡黄财神 ·藏密绿度母像 佛教铃音 More >> ·幽寿佛音 ·无言的喜悦 ·菩提树 ·静虚吟 ·佛上殿 ·金刚经 ·大悲神咒 ·心陀罗尼经 ·南无阿弥陀佛 IFRAME: http://www.ifeng.com/pubres/inc/foot_common.shtml 登陆名: ____________________ 密码: ____________________ 登录 注册帐号 忘记密码 [USEMAP:index091116nav_03.jpg] [spacer.gif] 国际在线 [spacer.gif] 新闻 国际 时政 专题 娱乐 明星 电影 电视 教育 漫听 双语 时尚 IT 艺 术品 陕西网 图片 评论 直播 周刊 电台 怀旧 视频 论坛 演出 街拍 美容 体育 城市 汽车 广西网 [spacer.gif] [index091116nav_12.jpg] 天气预报 [index091116nav_14.jpg] 地图 收藏本 站 网站导航 [spacer.gif] 环球调频广播 华影在线 华语广播 环球资讯 轻松调频 劲曲调频 世界新闻报 环球奇观 手机电视 ____________________ 搜索 热门搜索: 北方干旱 韩日舰艇对峙 国家最高科技奖 新闻首页 | 最新 | 国际 | 时政 | 评论 | 图片 | 直播 | 环球媒体连连看 | 调查 | 联合博 | 世界观 | 专题 机关团购违建 救跌倒老人 获奖 菅直人改组内阁 新闻中心 输入您的搜索字词 _________________________ 提交搜索表单 搜索 [spacer.gif] [spacer.gif] [content09_07.jpg] 首 页 > 新闻中心 > 正文 《爱丽丝梦游仙境》跨越时空的灵感源泉(图) 2010-04-20 15:04:10  来源:国际在线-《世界新闻报》  编辑:马里    [nn20100420530.jpg] 约翰・坦尼尔斯绘制的《爱丽丝》插图   赵晓辉   好莱坞鬼才导演蒂姆・波顿的新作《爱丽丝梦游仙境》(Alice in Wonderland)公映后,连续数周领跑北美票房排行榜,自3月26日登陆中国内地以 来,也取得了票房佳绩。这部童话自诞生以来,跨越了时代与国界,不断被人以 各种艺术形式演绎、阐释。爱丽丝和她梦中游历的一切,似乎成了我们取用不竭 的灵感源泉。   纯粹的幻想和童趣   与一般童话迥然不同的是,《爱丽丝》充满天马行空的奇思妙想。通常情况 下,童话作者多以谆谆教诲者的面目出现,总试图在作品中向孩子们灌输人生真 谛、精神信念,或处世箴言,而《爱丽丝》毫无道德训诫意味,体现了一种纯粹 的幻想和童趣。   从创作缘起来看,它的产生极其偶然。1862年7月4日,作者刘易斯・卡罗尔 (1832―1898)带利德尔家姊妹三人水上旅行,在返回途中给她们讲了一个奇妙 的故事。二女儿爱丽丝听得入迷,临别时恳求他把故事写下来,于是卡罗尔写下 《爱丽丝地下历险记》送给她,后来在此基础上扩充写成《爱丽丝漫游奇境记》 。至1898年卡罗尔去世,此书已成为风靡英伦的儿童读物。   从文本来看,整个故事极富想象力。文中的爱丽丝在河边看书时睡着了,梦 中追逐一只白兔掉进了洞穴,来到一个奇妙世界,她遇到了爱总结道理的公爵夫 人、神秘的柴郡猫、一条抽水烟的毛毛虫、神话中的格里芬、总叫嚷着砍头的扑 克牌王后等。她参加了一个疯狂茶会、一场以刺猬作球,以仙鹤为球棒的古怪槌 球赛、一次乱糟糟的审判,直到与王后发生冲突时才蓦地醒来,发现自己依然躺 在河边,姐姐正拂去她脸上的几片树叶――在梦里她把它们当成了扑克牌。除离 奇有趣的情节,故事的语言也幽默睿智,作者将诡辩的问答、双关的谜语、矛盾 的逻辑以及俏皮的讥讽巧妙融合在一起,体现了典型的英国式幽默,让人忍俊不 禁。   《爱丽丝》广受欢迎,著名画家约翰・坦尼尔斯也功劳甚伟。他绘制的插图 中,活泼的爱丽丝、谨慎的兔子、微笑的柴郡猫、暴戾的纸牌王后、睿智的毛虫 ……无不鲜活灵动,直探灵魂,把我们带进神奇的幻想世界。 1 2 3 4 图谋天下 [wc110114085.jpg] 浙江德清2400人争吃鱼汤饭 [wc110114078.jpg] 郑州民房存鞭炮突发爆炸 火花引燃隔壁网吧 [jc110114008.jpg] 独家探访宾尼法利纳风洞实验室 [wc110114071.jpg] 厕所主题餐厅现身昆明 [wc110114070.jpg] 飞机"走路"搬新家 多辆警车开道 [wc110114068.jpg] 华北黄淮干旱 6省45天无降水 [wc110114065.jpg] 罗斯开始部署卡-52攻击直升机 [wc110114062.jpg] 韩日警备舰独岛附近海域对峙 [wc110114057.jpg] 欧洲首家女仆咖啡厅开业 [wc110114054.jpg] 深圳巡逻警车两次碾过两龄童 [caaab2aa83db4b79b90f92328e94d878.jpg] 德一获奖雕塑竟是女警小便 [wc110114044.jpg] 伦敦女郎穿内衣游行 [wc110114035.jpg] 韩国江陵水池工地坍塌 [wc110114027.jpg] 四川农户屋后现巨型"天坑" [wc110114021.jpg] 司机在老板车上涂字要血汗钱 [wc110114016.jpg] 联合国驻科特迪瓦行动团车辆遭袭 [wc110114015.jpg] 七只雪狐集体亮相玉渊潭 [wc110114013.jpg] 巴西泥石流致444人丧生1000人失踪(高清) [wc110114005.jpg] 德装有2400吨硫酸运输船倾覆 [nl076148450632301210222.jpg] 沪蓉动车1节车厢仅1名旅客 [nl3754820733328916923333.jpg] 意大利埃特纳火山夜间喷发 [wc110113078.jpg] 蒋经国最后一次公开露面照片曝光 [wc110113077.jpg] 江苏大丰港工业园区发生爆炸 [wc110113076.jpg] 日男子将活龟伪装成饼干走私 [spacer.gif] 相关新闻 更多新闻 v 电影《弹道》揭露台湾政治的伤疤(图) 2010-04-16 10:38:38 v 第63届戛纳电影节公布入围名单(图) 2010-04-16 02:04:57 v 莫让青春的阳光陷入“恐怖网站”的阴霾 2010-04-14 10:34:45 v 《爱丽丝》不及《阿凡达》 观众理性看待IMAX风潮 2010-03-26 11:03:14 v 童话电影从恐怖中找灵感 让人"痛并快乐着"(组图) 2010-03-19 17:12:27 v 太平洋联合馆公布展馆效果图 演绎"太平洋――城市灵感的源泉"[ 图] 2010-03-12 10:26:06 [spacer.gif] 我要发言 [spacer.gif] 专辑推荐 [content09_11.jpg] [nt110111002.jpg] o 胡锦涛访美 城市榜 颁奖礼 李克强出访 o 聚焦2011年春运 中央经济工作会议 o 回顾"十一五" 省部长访谈录 美国枪击案 [content09_15.jpg] IFRAME: /gg/player_info.htm 图片推荐 [wc110114062.jpg] 韩日警备舰独岛附近海域对峙 [wc110114054.jpg] 深圳巡逻警车两次碾过两龄童 [wc110114044.jpg] 伦敦女郎穿内衣游行 [wc110114027.jpg] 四川农户屋后现巨型"天坑" 更多>> 新闻速递 [content09_19.jpg] 热闻榜 o 意大利总理贝卢斯科尼因雏妓案接受调查 o 格鲁吉亚开通俄语新闻频道 或播大量涉俄负面新闻 o 阿富汗教育部长称塔利班同意不再反对女孩接受教育 o 英国求职难 5000人排队争100个职位导致交通阻塞 o 美国科学家发现可通过测试嗅觉预测人的寿命 o 十分之七英国夫妻因生活太累对生活性失去兴趣 o 突尼斯总统本・阿里称将不再连任 o 捷克总统称:欧元是个错误的主意(图) o 土耳其呼吁以色列将其外长利伯曼解职 o 奥巴马支持率止跌回升 大幅反弹逼近5成(图) 更多>> 《蒙娜丽莎》被发现暗藏"达芬奇密码" 中国广西冰冻灾害持续 7市40县受灾 英格兰突发树木"口蹄疫"传染怪病 大学生通宵排队抢购火车票 同时备考 "京城第一贪"闫永喜多数赃款赠情妇 长沙一小型宾馆突发火灾已致10人死亡 "奶茶MM"保送上清华为何遭质疑 英男孩患遗传病 20多年后被证明是女性 逃费者诈骗无期,收费站诈骗无罪? 日本男子将50只活龟伪装成饼干走私 CRI独家 o 【世界观】阿桑奇成美国政治游戏中又一“祭品” o 【单词看天下】Apology 道歉 Stitch 缝线 o 【老外看点】披萨被中国人所接受 管窥天下 巨贪“没拿一分好处”的诡辩何来? [rb110114002.jpg] 虽然巨贪“没拿一分好处”是自欺欺人的诡辩,但由此 引发出的话题,我们不能讥笑了之,应从制度上予以警思。 房子,终究只是一堆砖头罢了 当你转变观念,同时为比房子更具有意义的梦想而奋斗时,你就会赞同我的 想法:房子,终究只是一堆砖头罢了。 一边号召租房,一边抑制多套住房 针对高档房、多套房、大房子征收房产税只是暂时的,谁能保证以后的房产 税不会"推广"到所有住房? 更多>> 新闻辩论会 IFRAME: ifif 热 词 [rcconxx.jpg] 任志强 房产税 停止供暖 节能减排 韩国口蹄疫 伊朗客机坠毁 上海公租房细则 美国会枪击案 泰安袭警嫌犯 桂林驴友失踪 [spacer.gif] 广西名片 IFRAME: ifif 艺术收藏 [su110114015.jpg] 奥巴马HOPE海报官司终了结 o 马未都:国人不注重无形的东西 o “大都会”收到千万美元捐赠 o 卢浮宫畅想古代 展18世纪盛宴 o 两年升10倍 和田玉2011不寂寞 o 茅台在纽约售价仅为国内一半 o 消费型收藏 离我们还有多远? 美容 [cjlj0101229006.jpg] 大变身 80后职场新物语 o 潮流妆容 自然粗眉重回流行 o 光影诱惑 打造魅力光泽感妆容 o 加湿器拯救“办公室沙漠” o “膜”力无限 各式面膜知多少 o 运用细节成就完美妆容 o 灵动之美 自然美睫攻略 [spacer.gif] [new09_index_83.jpg] 新闻首页 | 最新 | 国际 | 时政 | 评论 | 图片 | 直播 | 环球媒体连连看 | 国际调查局 | 联合博 | 世界观 | 专题 关于CRI | 招聘信息 | 培训信息 | 广播广告报价 | 网络广告报价 | 供稿系统 | 三项教育 | 合作联系方式 | 版权声明 | 法律顾问:华泰律师事务所 | 网站 地图 [09copyright.gif] 地址:北京石景山路甲16号 100040 业务电话:86-10-68892571 电子邮件:webmaster@cri.cn 违法和不良信息举 报中心 中国网站排名 新闻从业人员职业道德监督电话:86-10-68892232 68892233 监督邮件 :jchsh@cri.com.cn 中国互联网视听节目服务自律公约 网络传播视听节目许可证 0102006 京ICP证050344号 京ICP备05064898号 网 站运营:国广东方网络(北京)有限公司 中国国际广播电台国际在线版权所有(c)1997-2010 未经书面授权禁止复制或建 立镜像 [gongshang.gif] * 价值中国 * 财经 * 新兴产业 * 管理 * 投资 * 微博 * 书评 * 杂志汇 * 商学院 * 价值社会 价值中国网 管理 价值中国网 > 管理 > 人力资源 > 智慧的源泉 智慧的源泉 卜安洵 原创 | 2010-06-02 08:36 | 投票 投票人 标签: 源泉 智慧 黄金屋 安洵 千里路 智慧是对人的心智水平的描述,有三个词描述。一个叫智力,人人都有,比 如进出会堂,你一看,知道是讲座。为什么,你判断了。有智力。另一个叫智能 ,比智力高级些。比如你进场后发现前面的位置坐满了,就往后找,发现了一张 坐下。这是智能。是将智力运用而形成的能力。还有一个词是智慧。你进入会堂 ,发现今天的讲座很特别,你想到这可能对你的一生有改变。 所以每个人的脑门上贴的字只有三种:智力、智能、智慧。 贴着智慧字的人,做事睿智从容,一生受用不尽。所以人生修为,修的是智 慧。 人类为什么要设大学?为了有大学生?为了向社会输送人才?不是!是为了 让人类自身不断提升智慧。所以大学是究道和传道的地方。但人类的了不起,在 于它不但知道要设大学为自身提升智慧,他还有其他手段:文字和书,产品和历 史,组织和制度。所以,一个人要提升智慧,除了上学之处,还可以同时利用更 多种的手段。 今天,我想告诉大家,起码有四种方法提升自己的智慧: 读书、读人、读事、实践。 第一种智慧的取得方式,读书。 人类凭什么成了动物之王?几千年文明。几千年文明积累到哪里了?山里, 河里?在书里。你想掌握文明的力量,有什么途径?找到承载文明精华的主要载 体-书,阅读它!诸葛亮的智慧哪里来的?遍读经史、天文、地理。毛泽东的智 慧哪里来的?博古通今。有句古话:"书中自有黄金屋,书中自有颜如玉"。为什 么有黄金屋?因为书读得多,能赚钱,企业家没有不读书的。有人说,学历愈低 的人企业愈低。学历低并非读书少啊!为什么有颜如玉。有人说:知道,有了钱 当然有。不是,指腹藏诗书气自华,才子自然引佳人。 但是,读什么书都可以吗?不可以。因为书本的问题,我们已经被浪费了好 几年的青春。高中课本。再也不能如此了。我建议大家读三类书:一类是基本面 的书,有三种: 一是经典的书。既是经典往往因为描述了人生和社会的内在基本规律。如《 周易》、《大学》、《中庸》、《孙子兵法》、《菜根谭》、《毛泽东选集》 二是名家的书。书言志,人是大家其志必佳。读其人如阅其人。如果是文学 ,莎士比亚、泰弋尔、鲁迅等。如果是经济学:亚当.斯密、马歇尔、杨小凯等 。如果是社会学:孔子、亚里士多德、王阳明、孙中山、费孝通。 三是产生社会影响的书:如《共产党宣言》如《新教伦理与资本主义精神》 如《河伤》。 另一类是专业面的书。还有一种是兴趣类的书。如武侠、如情爱。 该怎样读书?乐读。李扬有个"疯狂英语",其实学其他东西都也是。 读书该到怎样的境界? 鲁迅有个三味书屋:布衣长暧、菜根香、读书滋味长。读到滋味长的境界。 我的体会是:读到能用。你读一本市场营销,说定位很重要。你想:我的定位如 何进行?说细分很重要?我的细分依据什么?毛泽东说:谁是我们的敌人,谁是 我们的朋友,这个问题是革命的首要问题。你就要想:什么是我成功的敌人?什 么是我成功的朋友?这个问题是我们走向成功的首要问题。所以要好好剖析自己 ,哪些是要消灭的,哪些是要宏扬的? 读书一定要想着如何用。我读书的批注基本是实践的联系,问题和修订。当 你以这样的标准看书时,有相当多的无用之书也被你识别出来的。而且,一本书 的道理,往往能启发你有原旨以外的应用。如《一封送给加西亚的信》。有一本 叫《水煮三国》的,则无用。 第二种的智慧取得方式,是读人。 为什么要读人?一个人的智慧太有限,读十人,读百人试试。所以要多交往 。读的时光也有限,所以要选高明的人来读。让自己高明的学问提升的捷径是找 名师,让自己人生成功的捷径是与高明人为友。读人指在交往过程中向他人学习 。读万卷书,不如行千里路,行千里路,不如阅一百人。为什么厅长的司机能当 科长?为什么虎门无犬子? 读人的方法是:读他的行为方式。读他的思维方式。读他的人格理念。通过 成功者的行为方式的模仿也能成功,只不过成功的程度有衷减。如一些成功学的 讲师。而思维方式的学习更有价值。当你有幸跟上一位杰出的领导人,你不一定 要模拟他的风格,但一定要深入体察他的思维。他如何看问题,如何想问题,如 何作决策,如何把复杂变得简单,如何让危机化为平安。读人的更高方式是人格 理念。和伟人在一起,成为伟人。 读人的真正奥秘,不是伟人、名人。而是生活在一起的普通人。是你遇见的 每一个人。电影院门口的卖花的小孩,有人注意过吗?你可怜、同情或轻视好吗 ?我告诉你:好的未来不可限量。她在如此之小时就每天观察和研究不同的人, 好了解什么人什么心理,好的花能卖给谁。你看过中国最普通的农民吗?他们在 艰难中保持快乐。他们如何邻里相助。(满文军在安徽同一首歌中的表现)。身 边的同学,读他的内心,发现那闪光之处。 读人一定要互动,不要当旁观者。不交流,对他的理解最少错了50%。一交 流,最少有50%的惊喜。再大的名人,不会排拆交流。人际模式是人生最重要的 模式之一。学会得到陌生人的帮助是成功的基础。 所以智慧的人是能够得到他人帮助的人。那怕是小孩子,他不欢喜你,说明 你无智慧。 智慧的第三个来源,是读事。 世界上每天都在发生事。关心这些事。所以说:风声、两声、读书声、声声 入耳;家事、国事、天下事,事事关心。为什么要关心事。除了作为人的现任和 使命外,关心事可以带来智慧。所以红楼梦中贾府的客厅中堂挂着一幅字叫:世 事 xinlijiankang health IFRAME: http://z.abang.com/z/ifr/login.htm 阿邦网—分享精彩生活 首页|时尚|美食|家居|健康|兴趣|宠物|数码|旅游|教育|运动|玩具|游戏|商品评论|魔镜|知道|团购 IFRAME: http://abangafp.abang.com/main/adfshow?user=AbangAFP|health_xinlijiankang|leaderboard750x90&db=abangafp&border=0&local=yes [adfshow?user=AbangAFP|health_xinlijiankang|leaderboard750x90&db=abangafp] 阿邦健康频道>心理健康>亲子教育儿童成长> 父母的爱是孩子自信的源泉 殷浩城 殷浩城 心理健康 父母的爱是孩子自信的源泉 问帮手 问帮手 给我写信 给我写信 rss RSS订阅 邮件订阅 邮件订阅 504人关注 我们经常碰到有年轻的朋友抱怨,说自己总是缺乏自信,也不知道该怎么培养自信。其实一个人的自信是要从小培养的,而孩子的自信最直接的来源就是来自于父母的爱,来自于自身各种潜能(真实自我)的发展,从而获得对生活的掌控感。 自卑感与软弱感的根源 著名心理学家弗洛姆曾经说过:“自卑感与软弱感的根源在于无力自发活动,无法表达真实感觉及思想(表现真实的自己),其结果必然是用伪自我取代真实自我。无论我们是否意识到,最大的耻辱莫过于我们不是我们自己(陷入必须迎合他人、看他人脸色行事的境地),最大的自豪与幸福莫过于思考、感觉表达属于我们自己的东西。” 真正的自我 现在的父母没有不爱孩子的,更多的时候其实是爱的过分,总怕孩子吃亏受累,于是好多事都帮孩子代劳了。但其实“儿童不管在什么条件下成长,只要他没有智力上的缺陷,他就必须以这样或那样的方式与他人打交道,只有这样他才有可能去获取某些技能。”从而发展出他的自我的独一无二的活力来,澄清和深入他自己的情感、思想、欲望和兴趣;开发自己的潜能;加强自己的意志力,发掘他已有的特殊的能力和天赋;通过表达自己来用自发的情感与他人打交道。真正的自我是我们的内在的中心力量,这种内在的中心力量是每个人所共有的,然而在每个人那里又各不相同,它是成长的真正根源。 但是,由于各种不利的影响,有可能不允许儿童按照他自己的意志和能力来成长。这些不利的影响太多了,不胜枚举,首当其冲的就是父母对儿童的“教育”。父母对孩子的关爱是必须的,但过分的事无巨细的操心则会使儿童的自发感觉及真个性(真实自我\自主性)的发展很早就受到压抑,特别是现在我们的教育风格常常是扼杀了自发性(真实自我),外加的感觉、思想和愿望取代了原始的心理活动。我们经常听到一些比较“乖”的孩子,一直品学兼优,但到了成人阶段就会遭遇很多心理困惑,典型的就是自信心的缺失。 爱孩子也得讲究方式方法 这种缺失往往是由于出现了断层:从什么都由父母搞好的生活环境换到了大学里很多时候必须自己搞定的生活环境,一下子不是很适应;或者是在恋爱等不太好请教父母的问题上,自己也不知道该怎么办才好。所以说父母的爱是孩子自信的源泉,不等于说父母直接变成水龙头,需要的时候拧一拧就行,所谓源泉是教会孩子怎么发现自我,建立自信,而不是一味的给予。这种爱是关爱,是引导,而不是全部代劳,所以爱孩子也得讲究方式方法。 如何培养孩子自信是需要父母多方考虑的 * ·儿童心理健康-和睦的家庭孩子智商高 * ·成长心理之学会善待父母同时学会善待子女 * ·什么是情商-和大家说说青少年情商问题 自信的源泉 如何爱孩子 亲子教育 [an error occurred while processing this directive] 失眠 发泄 玩具 女装 vivi杂志款 [an error occurred while processing this directive] 失眠 发泄 玩具 女装 vivi杂志款 相关产品:失眠 发泄 玩具 女装 vivi杂志款 标签:自信的源泉 如何爱孩子 亲子教育 投票成功,谢谢参与! 您已经对该文章投过票,请不要重复投票,谢谢! 积分+1 投票成功,谢谢参与! 登录投票还可以获得积分。 文章对你有帮助吗? 已有3人投票。 很有帮助 很有帮助 (_) 部分有用 部分有用 (_) 没什么用 没什么用 (_) 文章对你有帮助吗? 已有3人投票。 很有帮助 很有帮助 110人 部分有用 部分有用 10人 没什么用 没什么用 5人 文章有问题? [我要纠错] 上一篇:如何培养一个健康快乐的孩子 下一篇:成长心理之学会善待父母同时学会善待子女 问帮手 问帮手 给我写信 给我写信 rss RSS订阅 邮件订阅 邮件订阅 转载到新浪微博 转载到新浪微博 添加到我的收藏 收藏到: * 收藏到我的QQ书签 我的QQ书签 * 收藏到我的雅虎 我的雅虎 * 收藏到我的百度 我的百度 [plot_02.jpg] * 关于心理健康的最新精彩文章: + ·从玩具的选择谈儿童创造力的培养 + ·儿童心理健康_对孩子管教太严易致孩子自我丧失 + ·幼儿做家务事锻炼自理能力 * 浏览了该文章的人还看了以下文章: + ·30岁的女人该明白的十句大实话之一 + ·女性朋友应该学会如何获得性高潮 + ·如何处理和女友分手的问题 我要评论 直接提问 ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ [_] 《用户须知》 提交 关闭 [bg_03.gif] 我要评论 () ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ [_] 《用户须知》 Submit 返回心理健康首页  IFRAME: http://unstat.baidu.com/bdun.bsc?tn=aboutinc_pg&cv=0&cid=1112934&csid=107&bgcr=ffffff&urlcr=0000ff&tbsz=140&sropls=2,99&insiteurl=abang.com&defid=99 热卖 失眠 发泄 玩具 女装 vivi杂志款 IFRAME: http://abangafp.abang.com/main/adfshow?user=AbangAFP|health_xinlijiankang|billboard300x250&db=abangafp&border=0&local=yes [adfshow?user=AbangAFP|health_xinlijiankang|billboard300x250&db=abangafp] * 阿邦商品评论专家指导消费 * 一剪刀剪纸 留言免费送书 * 团购精品生活 乐享每日惊喜! * 冬季有效护理口腔助健康 * 做商品评论帮手分享使用心得 心理健康帮手最新推荐 * ·[自我心理调节]性格无好坏之外向型的“给予者” * ·[女性心理问题]女性集体潜意识有待革新 * ·[亲子教育儿童成长]如何培养一个健康快乐的孩子 * ·[自我心理调节]逢年过节要注意疏导有抑郁倾向的 * ·[自我心理调节]和大家说说怎么拒绝不是自己份内 * ·[情感与婚恋]相亲是门技术 更是门艺术 * ·[自我心理调节]心理医生到底是干什么用的 * ·[抑郁症]药物治疗抑郁症 方法一定要科学 * ·[情感与婚恋]年近不惑的女性朋友宜慎重考虑离婚 * ·[自我心理调节]从一个典型个案说说“神经官能症 心理健康热门文章排行榜 * ·[情感与婚恋]女性朋友一旦陷入和前男友的纠葛该 * ·[女性心理问题]30岁的女人该明白的十句大实话之 * ·[亲子教育儿童成长]什么是情商-和大家说说青少年 * ·[情感与婚恋]如何处理和女友分手的问题 * ·[抑郁症]如何适应工作压力以避免抑郁症的发作 * ·[女性心理问题]女性朋友应该学会如何获得性高潮 * ·[情感与婚恋]发现自己的爱人有婚外情了该怎么办 * ·[自我心理调节]性格无好坏之外向型的“给予者” * ·[冲动与自我控制]如何正确的调节自己的赌博心态 * ·[女性心理问题]做爱时男性应该充分满足女性的心 [zd_rbg.gif] [javascript] 健康点击排行榜 * 闫嫣 [top10_01.gif] 怀孕期间孕妇能吃味精吗? * 吴学峰 [top10_02.gif] 找对你的体质类型来养生 * 闫嫣 [top10_03.gif] 要孩子之前男性必知的4件事 * 赵媛 [top10_04.gif] 身体出现哪些状况后不宜继续减肥? * 王紫阳 [top10_05.gif] 老人冬季科学洗澡有助养生 * [top10_06.gif] 过敏体质宝宝的食疗方法 * [top10_07.gif] 患病儿童健康护理 腮腺炎患儿的护理注意 * 石雷 [top10_08.gif] 冬季如何有效护理我们的口腔健康 * 王紫阳 [top10_09.gif] 冬季常吃萝卜有助老人养生保健 * 吴学峰 [top10_10.gif] 秋季养生-秋季气候对人体养生的4大关键 免费订阅 集中阅读 免费订阅 集中阅读 精彩图集 新年开运红色的创意穿搭 开运红色创意穿搭 太阳岛雪博会银装素裹华丽开幕 雪博会华丽开幕 用微博记录点滴生活分享图片故事 用微博记录生活 趣味小测试 * [quiz_bg.jpg] 你知道油性皮肤如何去痘么? * [quiz_bg.jpg] 日常饮食营养知识你究竟了解多少? * [quiz_bg.jpg] 你会煲汤吗?煲汤常识小测试 * [quiz_bg.jpg] 纯种猫咪各类知识小测试 * [quiz_bg.jpg] 你对中国世界文化遗产和非物质文化遗产了解吗? [guge2652.gif] [guge2652.gif] 关于我们 | 广告服务 | 用户协议 | 成为帮手 | 邮件订阅 | 隐私保护 | 友情链接 | 网站地图 | 用户中心 Copyright ©2010, About Inc., All Rights Reserved 北京阿邦网络信息服务有限公司 版权所有 京ICP证070422号 [p?c1=2&c2=6362553&c3=&c4=&c5=&c6=&c15=&cj=1] [tongji.gif] [10001.gif] [shyxg001.gif] 邮箱 ______ 密码 ______ 登录 用户名 ______ 密码 ______ 登录 安徽 | 重庆 | 贵州 | 海南 | 湖北 | 湖南 | 江苏 | 江西 | 天津 | 黑 龙 江 | 河南 宁夏 | 青海 | 山东 | 山西 | 陕西 | 四川 | 新疆 | 浙江 | 辽宁 | 新疆兵 团 | 广东 网站导航 香港镜像 繁体简体 [shyxg003.gif] [10008.gif] 首页 [10010.gif] 新闻 [10010.gif] 评论 [10010.gif] 台湾 [10010.gif] 两岸 [10010.gif] 军事 [10010.gif] 台商 [10010.gif] 健康 [10010.gif] 文化 [10010.gif] 旅游 [10010.gif] 视频 [10010.gif] 社区 [10010.gif] 资料 [10010.gif] 周刊 [10010.gif] 专题 [10010.gif] 艺购 [10011.gif] 中华文化首页文化信息文化观察文化人物考古发现古今杂谈文史知识文明探源申 遗・保护文物收藏悦读 [0012mor23.gif] [0012.gif] 当前位置: > 文化 > 文明探源 良渚文明源头被锁定 2010-01-25 10:03:19 华夏经纬网 相关专题: image 东山村遗址出土的文物是目前中国研究古代社会分层分阶出现的最早实例。   CFP图 image 石钺   这个被称为“崧泽王”的张江港东山村遗址创造了多项之“最”,其中编号 为M90的墓葬墓坑的规模是迄今为止发现的崧泽文化墓葬最大的两座之一;该墓 葬内出土玉器的数量、墓葬内随葬品的总数是迄今为止发现的崧泽文化墓葬中最 多的……   由于良渚文化源于崧泽文化,专家认为,此次发现可以说是“找到了良渚文 化的源头”。   “张家港东山村遗址的挖掘,填补了崧泽文化时期没有高等级大墓的空白, 为良渚文化高度的社会文明找到了源头。”良渚文化源于崧泽文化,昨天,南京 博物院院长龚良告诉早报记者,经过两年多的时间,两次抢救性的考古发掘,张 家港东山村遗址目前已累计发掘面积2000多平方米,出土陶器、石器、玉器等文 物数百件,发现了马家浜时期与崧泽时期的墓葬、房址,尤其以首次发现的崧泽 时期高等级墓葬群及大型红烧土房址最为重要。国家文物局考古专家表示,这个 遗址把长江中下游的文明向前推了一步,确定了良渚文明的源头。   据介绍,东山村遗址位于江苏省张家港市金港镇东山村,东距张家港市区18 公里,北离长江约2公里。2008年7月开始至2009年11月,南京博物院考古部先后 在这里发现了10座大墓,已清理了8座崧泽文化早中期高等级大墓,出土各类文 物300多件。据了解,东山村遗址的整体平面近圆形,南北长约500米,东西宽 约500米,总面积约20万平方米,遗址的中心区域位于遗址的中部偏北,现存面 积约2.5万平方米,东部主要是小型墓葬遗址,中部为建筑区,发现有多座房址 ,崧泽文化时期房址达5座,遗址的西部主要是大型墓葬。不久前,国家文物局 考古专家组成员、北京大学考古文博学院教授严文明参观后,将其称为“崧泽王 ”。   据了解,其中编号为M90的墓葬创造了崧泽文化墓葬中的多项之“最”,墓 坑的规模是迄今为止发现的崧泽文化墓葬中最大的两座之一;墓葬内出土玉器的 数量是迄今为止崧泽文化墓葬中最多的,至少有19件;墓葬内出土了5件大型石 钺,是迄今为止发现的崧泽文化墓葬中出土最多的;墓葬内随葬品的总数是迄今 为止发现的崧泽文化墓葬中最多的一座,共有56件。   崧泽文化距今5300-6000年,属新石器时期母系社会向父系社会过渡阶段, 以首次在中国上海青浦区崧泽村发现而命名。崧泽文化上承马家浜文化,下接良 渚文化,是中国长江下游太湖流域重要的文化阶段。东山村遗址在崧泽时期处于 一个中心地位,作为氏族社会、部落文明发达与成熟的一个重要体现,龚良说, 上海青浦的崧泽遗址出土了150多座墓葬,出土器物最多的一座,不过20余件; 浙江一带的崧泽墓葬首先规格都比较窄,而且器物出得也不太多。 而东山村遗 址的墓坑规格大,墓长普遍在3米左右,最长的有3.3米,宽在1.6米左右,最宽 的有1.7米~1.8米。M90、M91、M92、M94、M95、M96等6座墓葬的墓坑长度均在3 米以上;单个墓葬随葬品的总数多,大多在30件以上,最多的有56件,陶器种类 丰富,数量较多,大多在20件以上,普遍发现有厚胎大口缸等;最能代表墓主身 份与经济实力的随葬玉器更是数量多、种类丰富。这些特点都令专家们认定,东 山村遗址在崧泽时期处于一个中心地位。   中国社会科学院考古研究所副所长陈星灿认为,东山村遗址出土的文物是目 前中国研究古代社会分层分阶出现的最早实例,对中华文明起源的研究具有重要 价值。东山村遗址崧泽文化早期高等级显贵墓群的发现以及与小型墓埋葬区域的 严格分离,将改变学术界以往对崧泽文化尤其是崧泽文化早中期社会文明化进程 的认识。   龚良告诉早报记者,为更好地保护和展示东山村遗址的灿烂文化,南京博物 院会同张家港正在规划建造一个大型的东山村遗址公园和博物馆。 东方早报记者 龚菲 来源:东方早报 共1页 1 责任编辑:王佳 【发送给好友】【打印 】【 关闭窗口 】 [0012morr.gif] [0012morr3.jpg] [0012mor23.gif] 【相关文章】 [0012.gif] [0029.gif] [0012morr.gif] [0012morr3.jpg] [0012mor23.gif] 【发表评论】 [0012.gif] [bold.gif] [italic.gif] [underline.gif] [center.gif] 微笑 大笑 难过 恼火 抓狂 坏笑 悲伤 加油 疑问 鼓掌 偷笑 大哭 得意 受 伤 不屑 玫瑰 _______________ _______________ _______________ _______________ _______________ _______________ _______________ _______________ _______________ _______________ 剩余 ___ 字 验证码: ____ ____________________ [BUTTON] 网友: ____________________ 密码: ____________________ [_] 匿名发表(无需注册) 马上发表 查看评论 已有() 条评论 如果不是本站用户,请注册 新闻排行 ・《见与不见》:被误解的早逝 ・浪漫诗人仓央嘉措 情史及情 ・天安门竖孔子像 台忧“中华 ・古城保卫战,有这样一位“8 ・清东陵被盗慈禧面容如生前? ・绚丽舞台不能没有草根 首届 ・揭秘“网络水军”:服务“一 ・黄会林:何为“第三极文化” ・组图:河南发现夏商年代城墙 ・浙师大发现宋代古墓 女主人 ・河北曹魏时期“铜雀三台”面 ・外报:中华文化提升两岸关系 ・冯小宁将拍《甲午大海战》首 ・诗人远去,谁还在校园里唱往 ・人大女生裸体接受媒体专访 ・2010年十大网络红人评选 ・78年前豪门婚照:谦光楼造 ・兵马俑一号坑出土彩绘将军俑 ・北宋时期的疑似UFO事件 ・清扬州文人画的代表:邗上五朱 编辑推荐 ・小寒时间为6日0时55分 ・京剧申遗成功的启示 ・南岛语族赴闽寻根之旅 ・国画遇知音 两岸文化根相连 ・知“根”方能展望未来 ・创意玩转北京香山红叶节 ・陕台:同根血脉下的拥抱 ・《周公解梦》PK《盗梦空间 ・“曹操墓”真假风波背后 ・民营博物馆漂泊记 ・舟曲:神山庇护的不屈之舟 ・《富春山居图》将合璧 ・香港书展六大看点 ・一个美妙的历史巧合 ・故宫文物南迁打响文化抗战 IFRAME: mainFrame IFRAME: mainFrame 网站简介 广告服务 联系方式 用户留言 设为首页 法律顾问 建站服务 Copyright 2007 By www.viewcn.com & www.huaxia.com [1hongdun.gif] 版权所有 华夏经纬网 京ICP证010602号 IFRAME: http://stat.huaxia.com/count/MyStat.jsp?aid=1731114&chid=173&coid=227 IFRAME: /TempletsImages/head.htm 首页>>周易学术>>周易哲学>>正文 ______________________ 搜 索 (_) 本站 (_) 互联网 国际易经网iqing.net190261107112020 易经,中国文化的源头 _________________________________________________________________ 国际易经网 http://www.iqing.net 2000-12-19 20:16:00  [] 您对这篇文章中涉及的内容有任何疑问和看法,随时可以到开心社区讨论 66833 IFRAME: /asd/newskx2007-1.htm   中国文化源远流长,博大精深。那浩如烟海的历史典籍,不仅为我们展示了 一幕幕壮丽的历史画卷,同时业给我们构筑了一个扑朔迷离的神秘殿堂。提到中 国文化,使人自然想起以《四书》、《五经》为代表的儒家思想。以《道德经》 为代表的道家思想。以《皇帝内经》的代表的中医体系。而《四书》,《五经》 首经《周易》,《道德经》有 88 句来源于《周易》,《皇帝内经》里讲的很多 都是阴阳、五行、八卦。由此可见它们都来源于中国文化的源头《易经》。 国际易经网iqing.net1902611071 27571 国际易经网iqing.net1902611071   为什么讲《易经》是门科学?仅就《四库 全书》而言,这是中国古代各方面科学技术的总记录,是本大百科全书,此书的 首经就是《周易》;另外,《古今图书集成》,也是收集了古时候的所有能搜集 到的各种图书,其编排的首经仍是《周易》。其次,《十三经疏注》《四书》《 五经》的首经都是《易经》,“不研易,不可为良医”,“不研易,不足以言太 医”,就是讲不懂得《易经》,就不能成为好的中医大夫,也就不能进太医院为 皇家治病。如果说《易经》仅仅是简单算卦的话,那么它如何能够居于各种学科 的首位?因此,它是指导古代一切科学技术的一种规律,是指导一切行动的准则 ,是一种基本理论。这一理论指导着所有科学技术和一切实际行动。这种理论仅 存在于我国,国外暂时还没有这种统一的基础理论,而是每一科学领域中有其自 己的基本理论。如自然科学有自然科学的基本理论,数学有数学的理论,体育有 体育的理论,医学有医学的理论,社会科学有社会科学的理论,社会管理有社会 管理的理论,等等。因而到处是理论到处是“真理”。这是因为没有抓住事物的 本质,是经不起长期考验的。结果形成的仅是特性,不是共性的真理。事物的本 质只有一个,不可能那么多。如果世界到处是真理的话,那就不存在真理了,真 理只能有一个。 国际易经网iqing.net19026 11071 国际易经网iqing.net1902611071   所谓真理那就是事物的本质,本质只能是 一个,而且是不会变的。不存在量变到质变的问题。量与质的转变是指两个事物 的竞争取代的过程,不是指的一个事物本身的过程,在一种事物中不存在量与质 的转变问题。如:玉米一粒是玉米,一斤、一吨、一万吨都是玉米,它永远不会 变成了菠菜。其本质是不会变的。如果这里的一万吨玉米运走了,而运来一万吨 菠菜,这只是一个更替过程,不能说玉米就变成了菠菜了。所以事物的本质是不 变的。这是中国古代自古以来抓住的主要思想之一:搞了一个最最基础的理论, 一切行动都要根据它来进行指导。既然一切都要根据这个理论进行指导,那么它 就包括了各个系统的本质,说明了这个系统是非常严格。并不象有人想象的,是 “唯心主义”,“形而上学”,“朴素的唯物主义”,“封建迷信”等等。全世 界中许多高度发达国家的科学家,是不会在封建迷信中浪费时间的。事实上,不 能不承认,西方发达国家的科学严格性超过了我们,那么人家为什么要钻研《易 经》,钻研老庄哲学?当他们发现他们研究了几十年甚至几百年的问题,我们的 祖先在几千年以前,已经研究得非常系统,非常清楚。这时才“妙不可言”,“ 玄极了”。他们认为越是不可能的,往往我们中国的哲学越认为可能。他们认为 “一加一等于二”,我们则说“一加一可以等于二,也可以不等于二”。最近二 百多年,他们才认识到一加一等于一零(即二进制)。 国际易经网iqing.net367061902611071 国际易经网iqing.net1902611071   所以中国古代从来没有要求,告诉你一个 事情就必须是如此这样的道理;就必须是非常具体、非常细致的理论,要求某件 事必须如此这般等等。而是告诉大家一个哲理,从来不给大家画框框。老子《道 德经》、《内经》、《伤寒》、《易经》、《河图》、《洛书》等都是如此,告 诉你大自然的规律性,并不讲非常具体的东西,因此,当你读道家书时,感到莫 名其妙,很玄。其实并非如此,它只是讲一个道理,大家只要在这个道理指导下 ,怎么用都是。所以说,它没有什么框框,充满了生命力。例如:西医中的青霉 素,是什么病,多少体重、什么具体情况下要用多大量、定得非常死,离开这个 范畴就不允许了。而中国医学就综合了各方面的情况,具体情况具体分析,用药 可多、可少、可用、也可不用,这样就灵活多了,境界开放多了,把事物都联系 在一起,本质就抓住了。这就是为什么中国文化如此充满生命力的原因。(张延 生) 66833 相关链接  推荐文章 ・成功的投资者会“倾听上帝的声音 ・六十纳音 ・《演禽通纂》简介 ・《张果星宗》简介 ・星命之立命宫法 ・麻衣神相十二宫 ・命宫简介 ・奇门易数简介 ・先天八字的探究 ・冬至养生  焦点关注  精彩推荐 ・麻衣神相十二宫 ・诸葛武侯灵感神卦(1) ・周敦颐《太极图》图式 ・诸葛武侯神卦妙算仙师 ・六十纳音 ・巧连神数 ・天罡斗指法 ・星命之立命宫法 ・先天八字的探究 ・命宫简介 ・奇门易数简介 ・江恩波浪理论与周易 国际易经网iqing.net IFRAME: /TempletsImages/foot.htm IFRAME: /inc/top_art.htm [log_art.jpg] 首页 >> 赛门铁克第4期 >> 存储论坛 >> 正文 ____________________ [所有] 搜索网页 重复数据删除走向“源头” http://www.cww.net.cn 2009年9月3日 14:06 中国计算机用户 作 者:赛门铁克中国区技术总监 李刚 为了挖掘现有存储资源,优化企业存储系统,重复数据删除技术成为当下用 户的应用热点。 但是,如何部署重复数据删除技术,是在数据源头还是存储后台,是在备份 系统还是归档系统,如何与逐渐普及的虚拟化应用相互融合,所有这些都是影响 重复数据删除应用效果的重要问题。 减少任意位置的重复数据 通常,一个企业IT系统里存储有几千个TB的数据,其中的重复数据可以说遍 布各地,但是,数据的使用者和管理者往往是两部分人。 由于这两部分人的出发点不一样,常常出现矛盾之处,要想解决数据管理和 使用之间的矛盾,只有通过整合物理资源。比如服务器虚拟化,通过虚拟化技术 使得多个小的服务器归并到一个大的服务器里,同时保持各个服务器的虚拟的独 立性。但这种资源整合常常做得不彻底,主要体现在对存储资源的保护并不是很 彻底。企业存储设备的利用率依然不高并存储管理混乱的局面。 所以,当用户部署重复数据删除时,需要考虑减少任意位置的重复数据。重 复数据实际上在企业里面到处都有,从数据产生到数据的保护、备份、复用,这 些环节都有大量的重复数据的出现。举例来说,有一个用户在做信息查询系统的 时候,为了提高系统的响应速度,采用了并行处理的办法。但在后端没有很好地 利用相应的数据共享技术,而是简单地把数据备份到多个存储上。 在服务器虚拟化后,虚拟机上面大量的数据也是重复的。比如说刀片服务器 ,这些刀片服务器都是用的WindowsServer的版本,这个Server版本大量的image 都是重复的。另外,在数据备份领域也都有大量的重复数据存在。 从数据源头删除 要想有效删除企业IT系统中任意位置的重复数据,最有效的方式就是让重复 数据删除功能更加贴近数据源头。比如在赛门铁克即将发布的NetBackup7中,将 进一步整合BackupExec技术,使得用户在客户端可以直接实现重复数据删除。 事实上,客户端直接执行数据删除,不仅能让重复数据删除功能发挥更大的 功效,更意味着网络带宽、服务器吞吐能力的需求都会大幅度降低。而从整体应 用角度出发,企业部署重复数据删除应注意三大价值: 首先是从数据源开始,因为越贴近数据源,删除效果就越好;其次,把备份 系统和归档系统整合到一起。这不仅可使生产系统变快,也使得备份速度加快。 把重复数据删除在做备份的时候放到了客户端而不是放在服务器,大量的重复数 据在进入网络之前就已被删除掉;最后,利用统一的架构使得整个重复数据删除 跟日常的运维整合在一起,这是一个长期的计划,可以优化数据结构。 针对这些用户需求和应用趋势,很多厂商目前都已推出了具备重复数据删除 功能的产品或解决方案,稍有不同的是,赛门铁克决定把其主打产品NetBackup 、BackupExec和EnterpriseVault同重复数据删除产品PureDisk实行整合,形成 全面的重复数据删除战略。之所以跳出单独的重复数据删除产品而形成全面的整 体战略,目的在于为客户的数据存储进行全面有效的“瘦身”,包括减少任意位 置的数据、降低复杂性以及精简基础架构。 应该说,实现这一目标并不容易,其中最为重要的步骤在于,将赛门铁克原 本独立的多个主打产品进行了整合,形成备份、归档以及去重的统一平台。同时 ,这一平台也能够对外开放,整合集成非赛门铁克的、第三方的重复数据删除的 技术。根据已有的测算显示,如果把归档和去重相结合,可以降低主存储40% ―80%的空间占用,而在备份部分增加这一技术将使得其空间占用更小,备份速 度更快,能够最多降低95%的备份存储,并减少网络流量。 编 辑:徐亮 关键字搜索:用户 数据备份 归档系统 相关新闻 ・北京移动推G3视讯业务 TD用户今起免费使用 [9/3] ・移动推MM平台上线 两周注册用户近2万 [9/3] ・广东3G用户数达到191万 电信3G用户达159万 [9/3] ・我国移动电话用户突破7亿 小灵通用户降1156万 [9/3] ・我国移动电话用户突破7亿 前7个月增6140万户 [9/3] ・塞内加尔手机用户达628万 预付费用户占624万 [9/2] ・朝鲜移动通信网覆盖全国3G用户增加迅速 [9/2] ・电子阅读市场迎来井喷期 用户年均增长55.7% [9/2] ・锐捷网络荣膺“2009中国IT用户满意度”两项大奖 [9/1] ・惠普8路服务器为用户提供更多选择 [9/1] 每日新闻排行 企业黄页 ・ 管理机构(4) ・ 电信运营(5) ・ 数据传输(12) ・ 视频电视(7) ・ 组织团体(14) ・ 通信线缆(20) ・ 用户终端(8) ・ 测试仪表(16) ・ 移动无线(13) ・ 交换设备(11) ・ 电信IT(8) ・ 通信电源(11) ・ 通信辅助(14) ・ 增值业务(10) ・ 系统集成(19) ・ 芯片制造(1) 会议活动 IFRAME: /inc/foot.htm [logo-tech.jpg] [tiao2.jpg] 赛迪网 > IT技术 > 最新更新 > 文章 IT资讯搜索 __________ [赛迪网..] [btn_go.jpg]-Submit IT产品搜索 __________ [产品分类] [btn_go.jpg]-Submit ・ [Java论坛][安全论坛][数据库论坛][操作系统论坛] ・ [推荐] 江民安全专家永久免费 立即下载 RSA 2010 ・ [专题] 参与多核UTM调查 赢购物卡 谷歌遭攻击事件 ・ [IT技术周刊][IT资源下载专区][病毒求助专区] ・ [热点] 《拆弹部队》藏木马 看Xbox360与PS3背后秘密 ・ [热点] 报告:PDF漏洞远超微软 十款免费电子邮件程序 "谷歌网络攻击事件"源头指向亚洲黑客 发布时间:2010.02.23 14:41 来源:华尔街日报 作者:华尔街日报 知情人士说,关于谷歌(Google)和至多33家其他公司所受的网络攻击,美国调查 人员正在跟踪可能的主谋,有证据指向一个亚洲黑客组织,这个组织可能由中国 人组成。 这些知情人士说,针对几家受攻击公司的初步法庭调查揭露出了一个知名亚洲黑 客组织所用的电子渗透技术,该组织是几家主要黑客团体之一。 一名知情人士说,情报部门和执法部门官员注意到一些相似的特点,表明攻击谷 歌和其他公司的黑客组织也涉入了此前他们所跟踪的一些攻击事件。 今年1月,谷歌称其受到严重网络攻击,导致知识产权受损。 谷歌说,其追溯到攻击源头在中国,但没有详细说明如何追溯。谷歌还称攻击者 的一个主要目标似乎是侵入中国人权活动人士的Gmail帐户。 这位知情人士说,许多调查人员关注的这个黑客组织使用中国电脑系统发起攻击 ,而且历来都会针对公司而非美国军方或其他政府机构发起攻击。 知情人士说,该组织被认为规模较小,因为与一些竞争对手不同,这些黑客往往 只侵入少数机器,实施的攻击也更有目的性──只窃取特定数据,而不是将找到 的东西席卷一空。 一位知悉调查内情的人士说,黑客在短短几天内能够攻击这么多公司,显示出他 们擅长采用同步攻击形式。 这名人士说,攻击软件很有针对性,表明攻击者可能是自己编写了软件。 很难确定黑客组织攻击这些公司时分别是针对何种信息。 也不清楚黑客组织是否与中国政府有关,或是以政府利益行事的所谓爱国黑客组 织。 中国政府否认与攻击有关。 谷歌发言人拒绝置评。 (实习编辑:白瑞) [ 发表评论 ] 字体[ 大中小 ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ] [ 推荐 给朋友 ] 【相关文章】 ・ 兽兽艳照视频网上流传 猎奇下载小心病毒 (02-23) ・ 警惕木马大变身 披 上影音播放软件外衣 (02-23) ・ Mozilla修补旧版Firefox的5个安全漏洞 (02-23) ・ 评论:云计算发展将拉 动黑客产业爆发增长 (02-23) ・ 外媒称蓝翔攻击谷歌目的是窃取商业机密 (02-23) ・ 李毅中:安全形势严 峻 网络实名制待施 (02-23) ・ 去年网络攻击导致企业平均受损200万美元 (02-23) ・ 苹果设置黑名单防堵 黑客入侵App Store (02-23) ・ 某网站借谷歌遭中国学校黑客攻击新闻炒作 (02-23) ・ 美媒体炒作谷歌受 攻击与中国2所学校有关 (02-23) [wz_left_6.jpg] 【客户需求反馈表】 * 姓  名: ______________________________ [_] 更多资料  [_] 了解方案  [_] 认识厂商 ___________________________________ ___________________________________ ___________________________________ ___________________________________ * 单位名称: ______________________________ * 联系电话: ______________________________ * 电子邮件: ______________________________ 提交 重填 [wz_left_6.jpg] [btn_01-1.jpg] [btn_02.jpg] [btn_03.jpg] [btn_04.jpg] [btn_05.jpg] [btn_06.jpg] 资讯 通信 IT产品 IT技术 信息化 中国信息产业创新贡献年度评选-创新2010 .专题:团购乱象 勿让消.. .专题:摩托罗拉拆分完成.. .专题:2011CES国际消费.. [tiao3.jpg] 专题:通信2010 应用加速度 .专题:联通出招,小心iP.. .专题:别硬挺了,固话月.. .专题:携号转网打响新一.. [tiao3.jpg] 直播:中国LED产业年会论坛 .专题:服务器教育行业案.. .专题:回顾2009 原装耗.. .专题:HP Photosmart Pl.. [tiao3.jpg] 春节网购年货警惕安全威胁 .2010赛门铁克大中国区用.. .建设安全园区网之园区网.. .直播:OWASP 2010中国峰.. [btn_07-1.jpg] [btn_08.jpg] .京东在“忍痛”割“地县级市场”? .效果驱动的企业网络营销策略:舍弃“一次.. .制约Android发展的三大难题 .Andriod手机系统个性比拼将成热点 .解读集成电路“国六条”促进举措 .奚部长充分肯定OPhone OS的成绩 .企业如何获得最大价值企业增值服务 .Groupon+lbs=创新的分布式电子商务雏形 .电信业进入创新驱动阶段 .Myyearbook 下一个青少年最爱的社交网站? .Linux系统下的所有压缩命令(备份压缩) .如何通过实践深度防御来规划网络安全 .话里话外:成功实施ERP要做到的几个关注点 .模式窗口刷新不弹出新窗口触发NET事件 .胡健:GPS定位销售 精细管理出奇招 .APM发展的四个维度 .DELL战略性收购SecureWorks,进军MSS .建一个更安全、更让人放心的网际网络(一) [btn_09-1.jpg] [btn_10.jpg] 访问人数过多,请稍候访问 访问人数过多,请稍候访问 外汇首页 > 外汇新闻 > 深度分析 > 正文 “国际汇率战争”源头是美元贬值 2010年09月30日08:04 来源:21世纪经济报道 网友评论(0)  0 手机访问    日前,巴西财长曼特加宣称,一场“国际汇率战争”已经爆发,尽管这一言 论是为巴西干预本国货币升值辩解,但也基本表达了各国政府竞相压低本币汇率 来提升本国竞争力的客观现实。最近,日本、韩国和中国台湾等央行为了抑制本 币升值,实施了一系列干预行动。与此同时,从新加坡到哥伦比亚等多个国家也 对本币强势发出了警告,而美国国会也正在寻求通过立法逼迫人民币升值。 推荐阅读 欧元 首战成功告捷令欧元有惊无险 未来仍“说不清” 各国利好推高欧元 * 双重压力下的人民币汇率 * 葡萄牙国债新年成功拍卖 * 欧英央行双双维持利率不变 * 美联储称美就业市场向好 * 瑞郎升值威胁瑞士经济 * [人民币牌价] [行情中心]   全球金融危机爆发后,各国通过G20峰会这一平台,共同协商实施了宽松的 货币政策与财政政策以拯救和稳定全球经济。但目前的情况表明,这些措施只是 让危机停止蔓延,复苏前景仍然渺茫。危机并不可怕,可怕的是长期停滞,这会 让各国政府陷入焦虑并意图将问题转嫁给别的国家。因此,越来越多的国家正把 本币贬值当作提振本国经济的手段,比如美国施压人民币升值。   与此同时,由于美元、欧元、日元等国际储备货币正在面前贬值的风险,这 些强势货币调整必然会带来其他货币的连锁反应,让全球外汇市场正处于一个混 乱的汇率重估期。因此,这既是利己主义的汇率战争,同时也是各国汇率重估的 客观要求,因为各国内部积累了结构性和政治性问题,而全球各国之间也存在结 构性失衡,一场货币重估是必然发生的。   事实上,这场汇率战争的源头是美元贬值。上周美联储发表声明认为,相较 其为促进充分就业和价格稳定这个任务在长远所需的通胀水平,“当前的通胀率 有些低了”,美联储宣称准备在必要时提供进一步融通来支持经济复苏,并逐渐 将通胀率恢复到与委员会的任务相一致的水平。这项声明意味着美联储极有可能 启动另一轮定量宽松(市场传言有万亿水平)政策。   问题在于,美联储去年总共购买了1.25万亿美元的抵押贷款资产,但这些美 元并没有转换成贷款,银行把资金回存到美联储,又返回到了美联储的资产负债 表上。因此,启动第二波定量宽松,除了降低国债收益率和借贷成本外,并不能 解决目前的问题,但会让美元大幅贬值,启动美元贬值的进程。正是这种预期, 刺激了国际金价本周屡创新高,美元持续走软。   同样,陷入债务危机的欧元相对高估以及日本累积的财政问题带来的日元贬 值压力,基本上反映了发达国家存在结构性危机,并表现在汇率上。但是,新兴 市场国家并没有承担汇率大幅变化的能力,他们脆弱的内部市场和过剩产能将会 被升值毁坏,因此,各国进行的竞争性贬值有可能加剧国际紧张和经济危机。美 国和整个世界在上世纪30年代初期陷入了严重衰退,但真正使之演化成长期萧条 的,是席卷全球的以邻为壑的保护主义,这也为二战播下了种子。此外,日元的 贬值也是当年亚洲金融危机的导火索,如果世界主要储备货币都要贬值,将会引 起新的全球危机。   中国的形势更为严峻。一方面,由于过于宽松的货币政策导致了通胀与资产 价格泡沫,另一方面,实体经济面临严重的产能过剩,而政府主导的投资也因信 贷风险难以持续。这个局面意味着,如果人民币升值(或加息),可能会重创出 口、投资和资产价格;如果不升值(不加息),因为美元贬值,也会遭受更严重 的通胀和资产泡沫。因此,不管汇率博弈结局如何,中国都会面临严重的挑战。 事实上,如果在汇率和利率方面过于无为而被动应对外部变化,这种不由自主的 逻辑可能会将中国经济带到更加难以应付的境地。 (责任编辑:刘冉) (点击头像看看他们在说什么) [bf5150-150.jpg] 谭雅玲 [_] 中国外汇投资研究院院长 [6b08d7-150.jpg] 陈敬全 [_] 钰佳国际首席外汇分析师 [c096dc-150.jpg] 周泽成 [_] 外汇达人 [ddef43-150.jpg] 逍遥鹰. [_] 外汇达人 [2babd6-150.jpg] 王金传 [_] 钰佳国际资深外汇分析师 [BUTTON] [button_01.gif] 查看评论(0) [icon_03.gif] [shouc.gif] 收藏  [icon_04_1.gif] 纠错  [icon_04_2.gif] 订阅  [rss.gif] RSS  [icon_04_3.gif] 分享   [icon_04_4.gif] 打印 财经名博 * [126794746.jpg] 社会风气不好的原因 * [126794826.jpg] 这是我的独家操盘方法 相关新闻 查看关于 汇率 的微博 * 09/30 07:25美众院汇率法案投票前 人民币汇率再创新高 * 09/30 07:08央行定调人民币汇率走向:增强弹性 * 09/30 06:55央行:增强汇率弹性 * 09/30 05:29管理通胀预期 增强汇率弹性 * 09/30 05:15迭创新高 人民币汇率“暗战”正酣 * 09/30 05:10央行例会强调下一阶段增强汇率弹性 * 09/29 22:25〔澳元汇率〕IMF称澳元汇价被"小幅高估" * 09/29 21:57央行称进一步增强人民币汇率弹性 [icon_05.gif] 相关推荐 * 汇率 我有话说已有0位网友发言看看大家都说了啥 [_] 自动登录 登录 [BUTTON] 用户名: ____________________ 密码: ____________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ [BUTTON] 正在验证用户信息... alfdls 您好,欢迎您发表评论! (言论仅代表会员个人观点,不代 表和讯网观点) ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ 发表 推广 热点 热点 推广 IFRAME: http://news.hexun.com/frag/106293970/2010_10793_106293970.html IFRAME: http://news.hexun.com/frag/106293970/2010_10792_106293970.html 热点专题 * 上半年宏观经济数据 聚焦全球金融监管改革 * 关注2010楼市调控 多方利益推动房租暴涨 * 十年磨一剑创业板正式推出 创业板主题研讨会 * 五粮液遭证监会立案调查 伯南克连任美联储主席 * 家庭理财寻医问诊 中国理财市场一周刊 * 2011上半年如何理财 精彩沙龙专家坐堂解读 * 中国人民银行电子商业汇票系统建成运行 * 商业银行入股保险公司正式开闸 * 回顾2010 展望2011:聊聊我心中的股市关键词 * “2010寻找最伟大投资顾问”大赛火热进行中 IFRAME: http://news.hexun.com/frag/106293970/2010_10795_106293970.html [detail03.gif] [detail04.gif] [detail05.gif] 感谢您的参与! 查看[本文全部评论] 您已复制了此链接。赶快分享给您的朋友吧! [BUTTON] * 首页 * 新闻 * 股票 * 基金 * 房产 * 汽车 * 科技 * 理财 * 银行 * 保险 * 债券 * 期货 * 期指 * 黄金 * 外汇 * 股吧 * 基金吧 * 论坛 * 博客 * 微博 [beta.gif] * 沙龙 * 视点 和讯 手机版 (_) 股票/基金 (_) 股吧 (_) 新闻 (_) 个人门户 ____________________ [BUTTON] 市场资讯 币种专栏 美元 欧元 央行动态 行业动态 专题 滚动 专家分析 专栏 机构分析 汇评 行情中心 招行报价 数据中心 财经日历 经济日程 人民币牌价 投资入门 机构筛选 投资知识 投资感悟 沙龙 论坛 博客圈 百科 和讯恭候您的意见 - 联系我们 - 关于我们 - 广告服务 本站郑重声明:和讯公司系政府批准的证券投资咨询机构[ZX0005]。所载文章、 数据仅供参考,使用前请核实,风险自负。 Copyright(c) 和讯网 和讯信息科技有限公司 All Rights Reserved 版权所有 复制必究 [EMBED] 国学网-文史聚焦 [31c1.gif] 首页 | 文化 | 文学 | 史学 | 哲学 | 中医 | 期刊要目 | 2006-12-31以前发表 | 中国思想史研究通讯第1辑 | 专题 | 会员中心 | 支持 论坛 [31c2.gif] [ldd.gif] 当前位置:主页>文史精华第12期-学术期刊发展>文章内容 引文数据库精选来源期刊对学术 来源:《云梦学刊》2004年第4期 作者:叶继元 发布时间:2004-07-14 目前全世界出版的现期期刊约20万种,其中科技期刊约7万种,人文社科期 刊约3万种,其他一般性、通俗性、时政性、消遣性期刊约10万种。面对如此庞 大的期刊数量,任何一个期刊数据库都不可能也不需要收录所有的期刊。实际上 ,各种数据库都是根据其编制宗旨、用户信息需求来选择一定的期刊作为收录的 对象。目的越明确,定位越准确,被收录期刊的选择就越严格。 来源期刊与核心期刊的概念近年来常被误用,因此有必要先对这两个概念进 行辨异。 核心期刊是个外来语,20世纪70年代末传入我国。目前我国学术界经常提到 的“核心期刊”,与核心期刊的原本含义已有很大的发展和变化。正由于这种变 化,才引发了许多争论。笔者认为,由于核心期刊的概念现已超出了图书情报学 界的范围,已被整个学术界、科研管理界等广泛接受和经常使用,因此,有必要 根据其原有的含义和目前中国实际使用的情况重新对核心期刊进行界定。 正如上文所述,早在20世纪30年代初,就出现了核心期刊的概念。当时学术 期刊和论文激增,某个学科的论文不仅发表在本学科的专业期刊上,而且出现在 另一相关学科的期刊上,尤其出现在多学科的期刊上。同时各种检索期刊也不断 增多,仅文摘期刊就达300余种。这些文摘期刊经常摘自一些期刊,而不常或很 少摘自另一些期刊。布拉德福敏锐地意识到了期刊论文的相对集中和分散的现象 ,并通过每天对到馆的润滑学和应用地球物理学490种期刊上1724篇论文进行逐 册逐篇统计,按其发表论文数量的多少排出序列,他发现,少数期刊中集中了大 量某个学科的论文,而另一些期刊却较少或很少出现某个学科的论文。如果把这 些期刊分成几个区,各区的论文数大体相当,则核心区中的期刊与相继各区中的 期刊呈1: a : a2 : a3 …的关系(a 是常数,大于等于1,约等于5)。这就是 最初核心期刊概念的由来。以后众多学者对其进行研究、完善,其中有重要影响 的是英国的布鲁克斯(B. C. Brookes)和美国的加菲尔德(E. Garfield)。布 鲁克斯首次用数学公式描述了布氏定律,加菲尔德则从期刊论文后参考引文的角 度证实了布氏定律及核心期刊的存在。 可见,核心期刊的理论依据是文献计量学中的布拉德福文献分散定律和加氏 文献引用定律。布氏定律和加氏定律是通过大量的实践和思考,按照科学的统计 方法,进行统计、分析、归纳、总结,又经过不断验证而得到的。它不仅有了较 为成功的数学表达式,而且出现了许多应用性成果。实践证明,布氏定律和加氏 定律揭示了期刊文献的分布规律,核心期刊效应是自然科学论文分布的现实反映 。 核心期刊原本是文献计量学上的概念,学科性、集中性和代表性是核心期刊 的三大特点。即它必须以统计数据作为基础,没有统计数据就无所谓核心期刊; 它必须是某一学科较为集中地刊载原创一次论文的学术性期刊,通俗性、检索性 期刊不包括在内;它必须是少量的、具有代表性的期刊。可见,原本意义上的核 心期刊与质量高的期刊是有一些联系,但并没与质量高的期刊等同。但是近几年 我国图书情报界、学界、管理界在使用核心期刊的概念时,不管他们是否意识到 ,已将原本概念扩大,使之等同于质量高的期刊。因此,如果核心期刊就是质量 高的期刊,那么核心期刊必须重新定义。如果新定义可以成立,那么筛选核心期 刊的方法也必须变化,不仅要从定量,更重要的还要从定性,即更注重各学科专 家的判断来确定核心期刊。换言之,只要从定量和定性方面筛选出来的期刊,不 论是名为来源期刊,还是核心期刊等各种名称,实质上都是真正意义上的核心期 刊――高质量的期刊。 按照这样的观点,我们就能看清现在各种机构评选出的名目繁多的 “来源 期刊” 或 “核心期刊”的实质,有的名为“核心期刊”,实质上却不是;有的 名为“来源期刊”,实质上却是真正的核心期刊。如中科院的《中国科学引文索 引来源期刊》中就有这样的说明:“来源期刊经过严格的评选,是各学科领域中 具有权威性和代表性的核心期刊”。 严格说来,来源期刊与核心期刊是有区别的。来源期刊(source journals )是指编者根据所编数据库的目的、要求,从期刊学术性、编辑标准等方面衡量 选出的作为统计源的期刊。核心期刊(core journals)是指刊载某学科文献密 度大,文摘率、引文率、及利用率相对较高,代表该学科现有水平和发展方向的 期刊。尽管二者亦有相同之处,尽管二者大部或绝大部分期刊重合,但毕竟有不 同。况且来源期刊之间也是有区别的。如CSSCI的来源期刊只有419种,而有的全 文期刊数据库的来源期刊有几千种,只要同意全文被其收录,就是来源期刊,显 然,这样的来源期刊的质量和其评价功能与精选过的来源期刊不可同日而语。 那么,精选过的来源期刊对学术评价到底有哪些作用呢?具体说来,笔者认 为主要有以下四大作用: 有利于形成统一的评价平台。 期刊种数众多,其内容多样,水平高低不一,其编校质量也差别很大,如作为统 计源的文后参考文献(引文)有的有,有的无,或有的多有的少,或有的著录规 范、有的较规范、有的不规范,如此等等。因此,为了能够获得必要的统计数据 ,必须根据数据库的编辑目的制定相应的期刊筛选标准,选出合适的期刊作为统 计源,这样才能建立一个便于统计的统一的评价平台。否则统计源期刊良 莠不齐、鱼龙混杂,其统计和评价的基础就较为薄弱。 有利于获取较准确的评价统计数据。 一般说来,精选过的来源期刊的内容质量和编校质量较高,因为其审稿制度较为 严格。其发表的论文较为符合有关的学术规范和撰写规范,如对重要观点、论据 、数据等的引用和著录较为规范,较少出现用而不引、引而不用等漏引、伪引、 乱引等情况,因此其有关评价的统计数据,诸如引文量、被引用次数、影响因子 、半衰期等就较为准确。 有利于获取较权威的评价统计数据。 同理,精选过的来源期刊上的论文质量较高,论文后的引文质量也较高,这些引 文大多出自本领域具有较深造诣的专家、学者之手,显然,这些参考文献的质量 和可信度比一般作者的一般论文后的参考文献的质量要高,其有关的评价统计数 据较为权威。 有利于提高获取评价统计数据的效率。 具有评价功能的数据库不仅需要具有足够大的数据,而且需要及时更新的数 据,以满足用户最新的信息需求。来源期刊经过精选后尽管数量相对少了,但质 量却大为提高。无用、粗糙的统计信息被忽略不计,真正有用的信息才被统计, 从而大大节约了处理无用或用处不大信息的时间和费用,提高了数据获取的效率 。 总之,精选来源期刊有助于明确数据的标准,提高数据的质量和效率,因此 ,有精选来源期刊的数据库与无精选来源期刊的数据库的评价功能是不一样的。 一般说来,来源期刊精选得越严格,其数据库的评价功能越高,反之亦然。 引文索引(citation index)是一种以文献之间的引用关系为基础的文献索 引,它不同于从作者、题名等为标目而编制的索引,它以被引用文献即引文为标 目,其下列出引用过该文献的全部文献即来源文献。除了一般查询外,它能提供 文献之间的内在联系。通过一篇具体的被引论文,可以检索到同领域的不同时期 的各种论文。引文索引的这种独特、新颖、实用的文献检索作用是其最重要的特 点,但可惜,这一点常常被国内一些论者所忽视。实际上,暂且不论其是否有助 于评价等作用,仅此这一检索作用,就足以证明引文索引数据库研制的必要性。 由于引文能够“把全部科学论文编织成一个统一的网系”,在大多数情况下 ,“引文是学者付给同行的硬币工资”,因此引文索引可以帮助确定知识或科学 的结构,反映学科的渗透情况,可以从一个重要侧面评价被引用论文、刊载被引 论文期刊以及学者、学者群体的影响程度和水平。当然,在“利用SCI来进行科 学评价时,一定要小心,要根据上下文的关系线索来理解,要理解整个领域,要 看它属于哪个学科领域……在不同国家、不同学科,引文行为差异不同。”何况 还有伪引、自引、负面引用、中性引用等问题,引文索引只提供数据,以帮助而 不是代替专家进行评价,数据不能说明一切,只能与专家评价互补,因此对引文 索引的评价作用一定要有恰如其分的认识,不可偏废。 世界上最早出现的引文索引是美国学者谢泼德(Shepard)于1873年创办的《谢 泼德引文》(Shepard's Citation),该索引是一种供律师或法学家查阅法律判 例及其引用情况的检索工具,它以最早的判例为线索,分别列出后来引用过这些 判例的其他判例。20世纪60年代,美国著名情报学家尤金・加非尔德 (E.Garfield)等人加以发展和完善,他所领导的美国科学信息研究所(ISI) 于1963年创办了《科学引文索引》(SCI, Science Citation Index),1973年 、1978年又分别创办了《社会科学引文索引》(SSCI, Social Science Citation Index)和《艺术和人文学科引文索引》(A&HCI, Art & Humanities Citation Index),几十年来,这些检索系统在科学查询、评价等方面产生了重 要的国际影响。 目前,全球很多国家和地区都在将SCI作为一个官方或非官方的评价工具,其中 一个重要原因就是SCI始终坚持的精品战略。ISI执行副总裁文森特・卡拉赫 于2002年6月针对一些全文数据库也做引文数据库,ISI如何面对这种挑战的提问 时说:“我们已有45年的实践经验,而且我们的技术也非常地领先,另外,我们 认为对内容的选择非常重要,并不是所有的内容都是需要去索引的,我们始终要 提供最好的信息资源和一些核心的研究成果。这方面我们也是非常独特的。” SCI的选刊标准包括很多因素,如期刊的被引次数、影响因子、发表哪些国 家的论文、被哪些国家的论文所引用、是否遵循国际通行的编辑惯例、被引文献 的文献项目是否齐全、每位作者有否完整的地址(包括电话号码与传真号码)、 是否有英文撰写的能提供一定信息量的标题、文摘和被引文献、是否采用同行评 议方式审稿、所载论文研究结果的是否具有新颖性、是否反映新的科学进展、期 刊编辑委员会及论文作者是否具有国际影响力、新办期刊的主办单位是否具有声 望、期刊是否具有地区代表性等等。南京大学的CSSCI在来源期刊的筛选标准、 原则等方面都是与国际接轨的,强调定性与定量,即专家意见与引文数据相结合 的评价方法。在2004年4月21-25日成都四川大学刚刚结束的全国人文社会科学研 究定性与定量评价研讨会暨南京大学中国社会科学研究评价中心咨询委员会第三 届会议上,利用专家意见与引文法已将CSSCI来源期刊调整为467种。以后逐渐调 整到500种。 所谓定性评价是指评价者根据其价值观与历史观对研究成果进行概括性评价 ,而定量评价是指评价者根据数据对研究成果进行具体精细的评价。一般说来, 定量比定性更具体、更精确、更具操作性。人文社会科学与自然科学有共性的一 面,但亦有不同的一面,其中最大的特点之一就是人文社科的许多现象不能或很 难量化。不恰当地运用定量评价法,并非定量评价法之过,而是运用者之错。同 行评议(peer review)是定性评价的一种主要方法,亦称专家评审,是指同一 个学科或研究领域或同一个研究方向的专家对研究成果进行的评价。某一或若干 领域的专家采用一种评价标准,共同对涉及上述领域的一项事物进行评价的活动 。同行评议自1665年实行以来,目前在国内外仍为主要的评价方法。但是由于其 保守性,以及假设评审人是公正等弊病,同行评议已受到多次的质疑。在我国人 文社科界,由于学术规范和评价制度远落后于国外,因此同行评议遭到更多的质 疑。定性与定量评价在一定的条件下均有其合理的因素及不足,应将定性与定量 评价密切结合,取长补短,才是目前最适宜采用的方法。目前许多论著普遍认为 引文计量(引证分析法)是定量评价法或间接评价法,实际上这种观点不够准确 。引文分析法既是定性评价法(同行评议),又是定量评价法。因为成果被引用 的前提是同学科的专业人员要阅读,且认为它有价值,这完全符合同行评议的含 义,实际上就是大同行评议,尔后又能计算出被评价的次数,这又是定量评价。 如果这个观点可以成立,那么可以进一步提高对引文分析法和引文数据库评价作 用的认识。但尽管如此,由于引文动机复杂,引用行为尚不规范,因此对引文分 析法仍然不能绝对化。引文计量对人文社科基础研究、宏观、中观研究的统计量 较大,故比较有效。对微观,如个体的评价要慎重。 参考文献: [1] 赵彦,王丹红.SCI的“自我评价”本报专访ISI执行副总裁文森特・卡拉赫. 科技时报,2002-06-07(1) [2]葛涛.强化学术评价功能 繁荣人文社会科学――叶继元教授谈CSSCI.中华读 书报,2003- 11-05 [ [file_move.gif] 收藏] [ [menuarrow.gif] 推荐] [ [menumember.gif] 评 论(0条)] [返回顶部] [打印本页] [关闭窗口] 用户名: __________ (新注册) 密码: __________ [_] 匿名评论 [BUTTON] 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法 规。 ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ §最新评论: [i.gif] 热点文章 ・评比是学术的鸦片 ・让中国的艺术人文与社会科学走向 ・关于“核心期刊”及学术期刊评价 ・值得关注的学术集刊现象 ・学术期刊的社会功能与发展方向 ・学术期刊的空间与方向 ・也谈学术期刊国际化问题 ・地方办刊的定位与特色――关于《 ・论高校学报的特色栏目 ・学术发展三论 ・学术媒体期待制度创新 [i.gif] 相关文章 ・让中国的艺术人文与社会科学走向 ・也谈学术期刊国际化问题 ・学术发展三论 ・关于“核心期刊”及学术期刊评价 ・学术期刊的空间与方向 ・评比是学术的鸦片 ・学术媒体期待制度创新 ・论高校学报的特色栏目 ・学术期刊的社会功能与发展方向 ・地方办刊的定位与特色――关于《 ・值得关注的学术集刊现象 [31c5.gif] Power by Tphs [31c6.gif] 登陆名: ____________________ 密码: ____________________ 登录 注册帐号 忘记密码 [USEMAP:index091116nav_03.jpg] [spacer.gif] 国际在线 [spacer.gif] 新闻 国际 时政 专题 娱乐 明星 电影 电视 教育 漫听 双语 时尚 IT 艺 术品 陕西网 图片 评论 直播 周刊 电台 怀旧 视频 论坛 演出 街拍 美容 体育 城市 汽车 广西网 [spacer.gif] [index091116nav_12.jpg] 天气预报 [index091116nav_14.jpg] 地图 收藏本 站 网站导航 [spacer.gif] 环球调频广播 华影在线 华语广播 环球资讯 轻松调频 劲曲调频 世界新闻报 环球奇观 手机电视 ____________________ 搜索 热门搜索: 北方干旱 韩日舰艇对峙 国家最高科技奖 新闻首页 | 最新 | 国际 | 时政 | 评论 | 图片 | 直播 | 环球媒体连连看 | 调查 | 联合博 | 世界观 | 专题 机关团购违建 救跌倒老人 获奖 菅直人改组内阁 新闻中心 输入您的搜索字词 _________________________ 提交搜索表单 搜索 [spacer.gif] [spacer.gif] [content09_07.jpg] 首 页 > 新闻中心 > 正文 法国总统办公室被控非法调查媒体信息来源 2010-09-14 13:43:23  来源:国际在线专稿  编辑:闫宇      国际在线专稿:据《每日电讯报》报道,法国《世界报》指控法国总统萨科 齐的办公室指使情报部门追查有关女首富献金案的媒体信息来源,违反了新闻来 源保密法。   法国近日就劳工部长、执政党前司库韦尔特涉嫌收受法国女首富、欧莱雅继 承人贝当古的非法政治献金一案展开调查,这一丑闻严重影响了韦尔特的声誉和 萨科齐的支持率。   法国最受尊崇的报纸《世界报》曾报道韦尔特在授予贝当古的财务主管荣誉 军团勋章前,曾要求他为妻子安排工作,并称这一消息的根据是情报部门和警局 透漏的贝当古身边工作人员的证词,   《世界报》称爱丽舍宫对这起泄密事件十分愤怒,命令法国国内情报总局调 查泄密的源头,并最终查出一名《世界报》记者和一名司法部员工的联系,导致 这名员工被降职。   《世界报》认为主持献金案调查工作的是公共检查部门,而不是某个独立的 调查机构,所以媒体作为站在权力对立面的力量,其作用至关重要,爱丽舍宫的 调查违反了今年1月开始由萨科齐本人推行的新闻来源保密法。而爱丽舍宫则发 表声明,坚决否认曾命令任何情报部门进行这样的调查。   据悉,今年4月,法国国内情报局主管斯夸齐尼承认曾接到爱丽舍宫命令, 调查有关总统夫妇皆有情人的流言的来源。 图谋天下 [wc110114085.jpg] 浙江德清2400人争吃鱼汤饭 [wc110114078.jpg] 郑州民房存鞭炮突发爆炸 火花引燃隔壁网吧 [jc110114008.jpg] 独家探访宾尼法利纳风洞实验室 [wc110114071.jpg] 厕所主题餐厅现身昆明 [wc110114070.jpg] 飞机"走路"搬新家 多辆警车开道 [wc110114068.jpg] 华北黄淮干旱 6省45天无降水 [wc110114065.jpg] 罗斯开始部署卡-52攻击直升机 [wc110114062.jpg] 韩日警备舰独岛附近海域对峙 [wc110114057.jpg] 欧洲首家女仆咖啡厅开业 [wc110114054.jpg] 深圳巡逻警车两次碾过两龄童 [caaab2aa83db4b79b90f92328e94d878.jpg] 德一获奖雕塑竟是女警小便 [wc110114044.jpg] 伦敦女郎穿内衣游行 [wc110114035.jpg] 韩国江陵水池工地坍塌 [wc110114027.jpg] 四川农户屋后现巨型"天坑" [wc110114021.jpg] 司机在老板车上涂字要血汗钱 [wc110114016.jpg] 联合国驻科特迪瓦行动团车辆遭袭 [wc110114015.jpg] 七只雪狐集体亮相玉渊潭 [wc110114013.jpg] 巴西泥石流致444人丧生1000人失踪(高清) [wc110114005.jpg] 德装有2400吨硫酸运输船倾覆 [nl076148450632301210222.jpg] 沪蓉动车1节车厢仅1名旅客 [nl3754820733328916923333.jpg] 意大利埃特纳火山夜间喷发 [wc110113078.jpg] 蒋经国最后一次公开露面照片曝光 [wc110113077.jpg] 江苏大丰港工业园区发生爆炸 [wc110113076.jpg] 日男子将活龟伪装成饼干走私 [spacer.gif] 相关新闻 更多新闻 v 萨科齐可能帮助富豪好友转移财产逃税 2010-09-13 09:25:01 v 继续驱逐罗姆人 萨科齐同时打出"治安牌""移民牌" 2010-09-12 05:59:53 v 萨科齐个人主页遭"谷歌炸弹"恶搞 被指侮辱总统 2010-09-11 15:51:10 v 欧洲议会要求法国停止驱逐吉卜赛人 2010-09-11 04:52:49 v 法国防部长称法英共享战舰的计划“不现实” 2010-09-03 19:30:51 v 法国总统表示致力于促进中东和平进程 2010-09-03 03:27:57 [spacer.gif] 我要发言 [spacer.gif] 专辑推荐 [content09_11.jpg] [nt110111002.jpg] o 胡锦涛访美 城市榜 颁奖礼 李克强出访 o 聚焦2011年春运 中央经济工作会议 o 回顾"十一五" 省部长访谈录 美国枪击案 [content09_15.jpg] IFRAME: /gg/player_info.htm 图片推荐 [wc110114062.jpg] 韩日警备舰独岛附近海域对峙 [wc110114054.jpg] 深圳巡逻警车两次碾过两龄童 [wc110114044.jpg] 伦敦女郎穿内衣游行 [wc110114027.jpg] 四川农户屋后现巨型"天坑" 更多>> 新闻速递 [content09_19.jpg] 热闻榜 o 意大利总理贝卢斯科尼因雏妓案接受调查 o 格鲁吉亚开通俄语新闻频道 或播大量涉俄负面新闻 o 阿富汗教育部长称塔利班同意不再反对女孩接受教育 o 英国求职难 5000人排队争100个职位导致交通阻塞 o 美国科学家发现可通过测试嗅觉预测人的寿命 o 十分之七英国夫妻因生活太累对生活性失去兴趣 o 突尼斯总统本・阿里称将不再连任 o 捷克总统称:欧元是个错误的主意(图) o 土耳其呼吁以色列将其外长利伯曼解职 o 奥巴马支持率止跌回升 大幅反弹逼近5成(图) 更多>> 《蒙娜丽莎》被发现暗藏"达芬奇密码" 中国广西冰冻灾害持续 7市40县受灾 英格兰突发树木"口蹄疫"传染怪病 大学生通宵排队抢购火车票 同时备考 "京城第一贪"闫永喜多数赃款赠情妇 长沙一小型宾馆突发火灾已致10人死亡 "奶茶MM"保送上清华为何遭质疑 英男孩患遗传病 20多年后被证明是女性 逃费者诈骗无期,收费站诈骗无罪? 日本男子将50只活龟伪装成饼干走私 CRI独家 o 【世界观】阿桑奇成美国政治游戏中又一“祭品” o 【单词看天下】Apology 道歉 Stitch 缝线 o 【老外看点】披萨被中国人所接受 管窥天下 巨贪“没拿一分好处”的诡辩何来? [rb110114002.jpg] 虽然巨贪“没拿一分好处”是自欺欺人的诡辩,但由此 引发出的话题,我们不能讥笑了之,应从制度上予以警思。 房子,终究只是一堆砖头罢了 当你转变观念,同时为比房子更具有意义的梦想而奋斗时,你就会赞同我的 想法:房子,终究只是一堆砖头罢了。 一边号召租房,一边抑制多套住房 针对高档房、多套房、大房子征收房产税只是暂时的,谁能保证以后的房产 税不会"推广"到所有住房? 更多>> 新闻辩论会 IFRAME: ifif 热 词 [rcconxx.jpg] 任志强 房产税 停止供暖 节能减排 韩国口蹄疫 伊朗客机坠毁 上海公租房细则 美国会枪击案 泰安袭警嫌犯 桂林驴友失踪 [spacer.gif] 广西名片 IFRAME: ifif 艺术收藏 [su110114015.jpg] 奥巴马HOPE海报官司终了结 o 马未都:国人不注重无形的东西 o “大都会”收到千万美元捐赠 o 卢浮宫畅想古代 展18世纪盛宴 o 两年升10倍 和田玉2011不寂寞 o 茅台在纽约售价仅为国内一半 o 消费型收藏 离我们还有多远? 美容 [cjlj0101229006.jpg] 大变身 80后职场新物语 o 潮流妆容 自然粗眉重回流行 o 光影诱惑 打造魅力光泽感妆容 o 加湿器拯救“办公室沙漠” o “膜”力无限 各式面膜知多少 o 运用细节成就完美妆容 o 灵动之美 自然美睫攻略 [spacer.gif] [new09_index_83.jpg] 新闻首页 | 最新 | 国际 | 时政 | 评论 | 图片 | 直播 | 环球媒体连连看 | 国际调查局 | 联合博 | 世界观 | 专题 关于CRI | 招聘信息 | 培训信息 | 广播广告报价 | 网络广告报价 | 供稿系统 | 三项教育 | 合作联系方式 | 版权声明 | 法律顾问:华泰律师事务所 | 网站 地图 [09copyright.gif] 地址:北京石景山路甲16号 100040 业务电话:86-10-68892571 电子邮件:webmaster@cri.cn 违法和不良信息举 报中心 中国网站排名 新闻从业人员职业道德监督电话:86-10-68892232 68892233 监督邮件 :jchsh@cri.com.cn 中国互联网视听节目服务自律公约 网络传播视听节目许可证 0102006 京ICP证050344号 京ICP备05064898号 网 站运营:国广东方网络(北京)有限公司 中国国际广播电台国际在线版权所有(c)1997-2010 未经书面授权禁止复制或建 立镜像 [gongshang.gif] [USEMAP:V20082_05.gif] 学校概况 | 学校领导 | 管理机构 | 科教单位 | 招生 | 就业 | 招聘 | 校园 风光   案例资料来源 http://www.hainu.edu.cn [ 精品课程 ] 2007/7/3 15:57:00 [1695] _________________________________________________________________   案例资料来源 第一篇 城市人口动态 案例一 天津城市内部人口迁居特征及机制分析 资料来源:天津城市规划编写组.天津城市规划[M].天津科学技术出版社,1989 年12月第1版. 案例二 天津市人口迁移情况的研究与思考 资料来源:李鸥.天津市人口迁移情况的研究与思考[J].天津行政学院学报 ,2003,5(3):77~80. 案例三 人口迁移和流动对生态环境的有利影响分析 资料来源:蔡林.人口迁移和流动对生态环境的有利影响分析[J]. 生态经 济.2006(6):44~47. 第二篇 城市水生态环境建设 案例一 成都市滨水区域水生态环境建设 资料来源: 1、许蓉生.在环境建设中统筹人与自然和谐发展――成都市复兴滨水区域的探索 与成就[J].成都行政学院学报.2006,14(2):62~64. 2、城环办.关于改善我市中心城区水环境的调查与思考[Z].成都市人民代表大会 常务委员会专委之窗.2006-12-01. 案例二 桂林城市化水文效应分析 资料来源:罗春玲.桂林城市化水文效应分析[J].人民珠江.2005(1):60~62. 案例三 北京市清河污水处理厂(一期)项目 资料来源: 1.国家环境保护总局环境工程评估中心.环境影响评价案例分析[Z]北京:中国环 境科学出版社,2006:333~350. 2.北京电视台.让城市河流还清清河污水处理厂为生态北京保驾.2002-9-26. 第三篇 城市土壤环境 案例一 沈阳市公园绿地土壤养分特征的研究 资料来源:边振兴,王秋兵.沈阳市公园绿地土壤养分特征的研究[J].土壤通 报.2003,34(4):284~290. 案例二 深圳城市绿地土壤肥力质量评价及管理对策 资料来源:卢瑛,甘海华,史正军,等.深圳城市绿地土壤肥力质量评价及管理 对策[J].水土保持学报,2005,19(1):153~156. 案例三 城市化对土壤环境的影响 资料来源:廖金凤.城市化对土壤环境的影响[J].生态科学.2001,20(1,2) :92~95. 第四篇 城市植被调查 案例一 海南城市绿化植物与自然植物区系比较研究 资料来源:杨小波.海南城市绿化植物与自然植物区系比较[A].何兴元,宁祝华. 城市森林生态研究进展[C].北京:中国林业出版社,2002.227~232. 案例二 城市森林建设的经典案例 资料来源: 1.谭纵波.美丽的传说――纽约中央公园的来龙去脉.经济观察报,2005年6月6 日. 2.姜京渊.北京离纽约有多远.北京青年报,2006年4月8日. 3.江泽慧.加快城市森林建设走生态化城市发展道路[Z].中国科协2003年学术年 会,2003年9月14日. 4.王成.澳大利亚城市森林建设考察记[J].中国城市林业,2003(2). 案例三 北京城市生态系统植物种类构成及其分布特征 资料来源:孟雪松,欧阳志云,崔国发,等.北京城市生态系统植物种类构成及 其分布特征[J].生态学报,2004,24(10):2200~2206. 第五篇 城市动物 案例一 北京城市生态与野生动物保护管理 资料来源:张志明,张林源,胡严,等. 北京城市生态与野生动物保护管理[J]. 北京林业大学学报(社会科学版) ,2003,2(1):40~44. 案例二 城市野生动物与生态城市建设 资料来源:孔维尧,周宏力,邹红菲,马建章.城市野生动物与生态城市建 设[J].野生动物杂志,2005,26(6):30~33. 第六篇 城市灾害及其防治 案例一 北京8.26地铁火灾的启示 资料来源:小石.北京8.26 地铁火灾的启示[J].城市减灾,2006(5):18~19. 案例二 韩城市的地质灾害及其成因 资料来源:王艳婷,吴志坤,马显春.韩城市的地质灾害及其成因[J].山西建筑 ,2005,31(6):52~53. 案例三 锦州市洪水灾害及其防治 资料来源:韩旭.锦州市洪水灾害及其防治[J].中国科技信息,2006,13:190 ~192. 第七篇 城市景观 案例一 谁弄脏了三亚湾的脸 资料来源: 1.李微,杨小波,吴庆书,杨定海,等.三亚湾滨海绿带对海岸的保护与景观问 题研究报告.三亚市园林局,2006. 2.中科院海洋所.三亚湾海滩“泥化”和海岸侵蚀原因及治理对策研究报告.三亚 市园林局,2005. 第八篇 城市交通建设对城市生态的影响 案例一 北京地铁四号线工程 资料来源:国家环境保护总局环境工程评估中心.环境影响评价案例分析[Z].北 京:中国环境科学出版社,2006:490~505. 案例二 城市交通干线发展对少数民族社区演变的影响 ――以北京马甸回族社区为例 资料来源:周尚意,朱立艾,王雯菲,等.城市交通干线发展对少数民族社区演 变的影响――以北京马甸回族社区为例 [J].北京社会科学,2002,68(4):33 ~39. 第九篇 商业区的建设发展对城市的影响 案例一 中国国际贸易中心三期工程 资料来源:国家环境保护总局环境工程评估中心.环境影响评价案例分析[Z]北京 :中国环境科学出版社,2006:314~332. 第十篇 垃圾场建设对城市的影响 案例一 广州市废弃物安全处置中心 资料来源:国家环境保护总局环境工程评估中心.环境影响评价案例分析[Z].北 京:中国环境科学出版社,2006:333~350. 第十一篇 城市生态规划设计案例 案例一 基于生态基础设施的城市空间发展格局 ――“反规划”之台州案例 资料来源:俞孔坚,李迪华,刘海龙,程进.基于生态基础设施的城市空间发展 格局――“反规划”之台州案例[J]. 城市规划,2005(9):76~80. 案例二 基于生态基础设施的格网城市模式 ――台州市永宁江中心段城市设计 资料来源:朱强,李迪华,方琬丽.基于生态基础设施的格网城市模式――台州 市永宁江中心段城市设计[J].城市规划,2005(9):81~84. 案例三 河流再生设计――浙江黄岩永宁公园生态设计 资料来源:俞孔坚,刘东云,刘玉杰. 河流再生设计――浙江黄岩永宁公园生态 设计[J].中国园林,2005(5):1~7.     内容编辑:wanghua   | 网站首页 | 设为首页 | 加入收藏 | 网站导航 | 联系方式 | 学校地址:海南省海口市人民大道58号海南大学 邮编:570228 许可证:琼TCP 备000006 版权所有(2011)海南大学网络信息中心 建议使用800*600及以上分辨率浏览 [logo.jpg] [12321.gif] 中文 English 首 页 综合处理平台 反垃圾邮件 个人邮箱 企业邮箱 邮件营销 邮件安全 邮件 系统 移动电邮  您的位置:首页→首页栏目→知识小贴士→垃圾邮件来源? 垃圾邮件来源? ______________________________________________________________________ 作者:反垃圾邮件中心 文章来源:www.anti-spam.cn 更新时间 :2006-02-15 【问】:垃圾邮件来源? 【答】:垃圾邮件的来源主要包含以下四个方面: 1. 匿名转发服务器 匿名转发是指邮件服务器具备邮件转发功能,且此功能不需要验证发件人的身份 。使用匿名转发功能的邮件服务器会接受来自第三方的所有邮件转发请求,垃圾 邮件制造者利用此功能可以隐藏真实身份,大量发送垃圾邮件。 2. 匿名代理服务器 许多机构需要为内网用户建立代理服务器,以便其接入互联网。匿名代理是指无 需任何身份认证,允许外部用户访问代理服务器。垃圾邮件制造者可利用匿名代 理服务器大量发送垃圾邮件,并且可以隐匿邮件的真实来源。 3. 一次性帐户 一次性帐户是指被垃圾邮件制造者盗用的或非法注册的电子邮件帐户。这些帐户 被垃圾邮件制造者用来发送大量的垃圾邮件,一旦被发现时垃圾邮件制造者便丢 弃这些帐户。非法注册的帐户多是由注册软件自动注册的。 4. 僵尸主机 垃圾邮件制造者控制大量的僵尸主机,组成庞大的僵尸网络,大规模的发送垃圾 邮件。 僵尸主机的产生途径: a) 欺骗用户安装恶意软件; b) 利用程序和操作系统的安全漏洞,安装恶意软件。 5. 非许可的商业邮件列表 非授权的使用用户列表(数据库内的数据),发送带有商业目的的营销 类电子邮件 6.邮件群发软件 【发表评论】 【关闭窗口】 [blank.gif]  相关文章 [c.gif] . 我的证券之星 [登录] [注册] | 邮件订阅 | RSS订阅 | 设为首页 | 加入收藏 证券之星 首页 | 股票 | 行情 | 数据 | 公告 | 研报 | 股评 | 港股 | 财经 | 观点 | 专题 | 基金 | 债券 | 外汇 | 黄金 | 银行 | 期货 | 理财 | 学堂 | 股吧 | 博客 | 赶牛 您所在的位置:首页 - 外汇 - 外汇资讯 - 正文 ____________________ [高速行情] [button_search.gif]-Submit 希腊债务危机追根溯源 www.stockstar.com 2010-5-19 20:52:57 钟慧文 证券之星 一号文件 锁定水利股 救市行情可期 关注五领域 [字体:大 中 小] 收藏 订阅 RSS 分享 打印 [发表评论] [ [phone.gif] 手 机也能看]   2009年12月8日,评级机构惠誉将希腊信贷评级由“A-”下调至“BBB ”, 前景展望为负面;12月16日标准普尔也将希腊的长期主权信用评级由“A-”下 调为“BBB+”;12月22日穆迪宣布将希腊主权评级从A1下调到A2,评级展望为 负面。选择“货币掉期交易”的国家不仅仅是希腊,欧元区其他国家意大利、西 班牙、德国等都有涉足,所以欧洲全面化危机不可避免。   2009年12月8日,评级机构惠誉将希腊信贷评级由"A-"下调至"BBB ",前景 展望为负面;12月16日标准普尔也将希腊的长期主权信用评级由"A-"下调 为"BBB+";12月22日穆迪宣布将希腊主权评级从A1下调到A2,评级展望为负面 。三大评级机构接踵而至的评级下调让希腊债务危机愈演愈烈。其间,希腊举 债20亿欧元,虽然外界对于希腊危机的影响并没有太大恐慌,但事实上后面发生 的事情让欧盟各国和整个世界都感到了不安。   随后,欧洲其他国家也开始陷入危机,包括比利时这些外界认为较稳健的国 家,及欧元区内经济实力较强的西班牙,都预报未来三年预算赤字居高不下,整 个欧盟都受到债务危机困扰。危机不断蔓延到德国等欧元区的龙头国,他们都开 始感受到危机的影响,因为欧元大幅下跌,加上欧洲股市暴挫,整个欧元区面临 着严峻的考验,外界也有猜测欧元区可能分崩离析。   罗马城不是一天建成的,希腊危机也不是一天酿就的。追根溯源,还应当 从2001年希腊加入欧元区开始。欧元区国家必须满足《马斯特里赫特条约》规定 的两个标准,即预算赤字不能超过国内生产总值的3%、负债率低于国内生产总 值的60%。而希腊当时已达到这个标准,正在希腊左右为难之际,高盛为希腊量 身打造了一套"货币掉期交易"方式,为希腊政府掩饰了一笔高达10亿欧元的公共 债务,从而使希腊在账面上符合了欧元区成员国的标准。   不过,正是这个"金融创新"让希腊在债务到期之日陷入了危机。有经济学家 猜测,年初出现的对希腊和欧元的金融攻击,却远非市场的自发行为,而是有预 谋的。这次攻击利用希腊多笔债务到期、炒作希腊出现支付能力问题,从而使市 场出现大幅动荡导致欧元下跌,希腊融资能力下降、成本剧增。同时,选择"货 币掉期交易"的国家不仅仅是希腊,欧元区其他国家意大利、西班牙、德国等都 有涉足,所以欧洲全面化危机不可避免。 (证券之星编辑整理) 分享: 分享到新浪微博 分享到QQ空间 分享到开心网 分享到人人网 分享到豆 瓣 分享到赶牛 【本新闻已有人评论,点击查看】【希腊债务危机】 挖掘、揭秘私募资金动向2011十大潜力股 钟慧文 更多文章>> * ・[农牧]全球粮价金融化酿下危机“苦果”2010-11-29 10:44:49 * ・输入性通胀冲击 外贸企业难应付2010-11-4 10:50:38 * ・[保险]公私有别成社保争议焦点2010-11-1 10:07:58 * ・定量宽松政策:放纵美元贬值之疑2010-10-20 20:10:00 * ・汇率争端硝烟四起 全球演绎“货币保卫战”2010-10-18 20:35:01 外汇要闻 进入证券之星外汇频道 具备反弹条件个股 IFRAME: http://allyes.stockstar.com/main/adfshow?user=AllyesNetwork|news|left_ button&db=stockstar&border=0&local=yes [adfshow?user=AllyesNetwork|news|left_button&db=stockstar] 外汇 国际外汇市场重大事件解析 外汇即时汇价一览 | 人民币牌价表 | 美元指数 国际外汇市场一周大事提示 外汇最新资讯 | 外汇机构观点 | 外汇专家观点 * ・首战成功告捷令欧元有惊无险 未来仍“说不清” * ・欧盟拟推出救援机制修改版 开征银行税 * ・面对高通胀泰韩急加息 还在危机期欧洲不敢动 * ・西班牙公债发行顺利 英欧维持利率不变 * ・瑞郎升值威胁瑞士经济 * 今日主力异动股一览 IFRAME: http://comment.stockstar.com/newscomment/post/PostIframNews.aspx?NewsI D=SS,20100519,30392686 声明:证券之星发布此信息目的在于传播更多信息,与本网站立场无关。 证券 之星不保证该信息(包括但不限于文字、数据及图表)全部或者部分内容的准确 性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证 实,不对您构成任何投资建议,据此操作,风险自担。 热门专题 洪榕:发展私募基金是历史使命 洪榕:发展私募基金是历史使命 阳光私募基金峰会 阳光私募基金峰会 东吴证券2011年投资策略报告会 东吴证券2011年投资策略报告会 首份上海上市公司 首份上海上市公司"体检报告"出炉 股吧24小时热点话题 * ・[随便聊聊吧] 老沙:下周一类股可大胆加仓 * ・[随便聊聊吧] 杨百万:节前大胆买入5只暴涨股 * ・[战上海吧] 小宽:预测出下周一最具爆发力的六大牛股 * ・[大盘走势吧] 叶檀:三类股下周将会暴涨 * ・[大盘走势吧] 叶荣添:刚刚选出下周几只特好暴利股 * ・[大盘走势吧] ★ * 首页 * 词条 * 文章 * 图片 * 视频 * 任务 * 排行榜 * 百科大全 * 页面加载中... * 移动 * 建站 * 小组 * 新知社 * 人物 * 历史 * 文化 * 艺术 * 自然 * 地理 * 科学 * 经济 * 生活 * 社会 * 体育 * 技术 ____________________ 进入词条 [BUTTON] IFRAME: http://www.hudong.com/tuijian/en-activity.html 创建词条 一次性密码本 开放分类:密码学技术科学技术 编辑词条分享 * 新知社 * 新浪微博 * 人人网 * 腾讯微博 * 移动说客 * 网易微博 * 开心001 * 天涯 本词条由雨雪冰柔 创建,已被浏览 L 次,共有2位协作者编辑了1个版本。最新协作者:雨雪冰柔 ,never137。 一次性密码本,是一种用于安全地传送和存储数据的方法。发送主机生成一个随机字符序列作为密钥流,以该密钥流作为一次性密码本。将密钥流与明文按位“异或”产生密文。将密钥流和密文通过物理上分离的通信路径路由到接收主机,接收主机通过使用“异或”运算将密钥流应用到密文对其进行解密。使用MPLS标记或者严格路由选项建立分离的路由路径。 纠错 编辑摘要 目录 * 1 定义 * 2 历史记载 * 3 密码本的生成 * 4 安全性 * 5 加密方法 * * 1 定义 * 2 历史记载 * 3 密码本的生成 * 4 安全性 * 5 加密方法 * 6 举例说明 + 6.1 举例一 + 6.2 举例二 * 7 相关分析 * 一次性密码本 - 定义 一次性密码本(One-time Pad;OTP)是密码学中的一种加密算法。是以随机的金钥(key)组成明文,且只使用一次。 一种通过应用一次性密码本安全地存储数据的方法,所述方法包括以下计算机实施步骤:接收第一数据流,所述第一数据流包括真正随机生成字符的密钥流;接收包括密文的第二数据流,其中在两个物理上分离的路由通信信道上接收所述第一和第二数据流,其中所述密文包括源文本,通过使用异或运算将所述密钥流应用到所述源文本,对所述源文本进行加密;使用所述密钥流对所述密文进行解密,导致产生和储存等同于所述源文本的解密数据。^[1] 一次性密码本 - 历史记载 一次性密码本比计算机的历史还要早,可以回溯到1917年。它们是在第二次世界大战期间偶然用于高安全通信的。“一次性密码本”中的“密码本”来源于密码术的最初形式:密钥材料打印在厚厚的本子上,每页一个字母。 一次性密码本在今天仍在一些有限的范围内使用。许多政府部门使用短波无线电将加密的消息传达给战场上的间谍。特工人员有一个短波接收器,知道要调到哪个台以及何时调。无线电台只不过广播了自动声音读出一系列数字。这些数字被断开的方式清楚地表明有多条消息,每条消息都有一个有关消息的头信息。这种信息通常包括消息的长度和想要的接收者。间谍收听第一组数字,以确定是否有消息在等着他。如果有,他接收到消息的密文,并根据头信息来确定从他的那本一次性密码本的哪里开始。然后将消息译码,最后销毁消息和在一次性密码本中任何使用过的页。 在军事和政府部门应用中使用的加密算法与我们在计算机上使用的略有不同,但在实际中都是一样有效的。我们将给出一个算法示例,假设一条消息只由从 A 到 Z 中的 26 个可能的字母组成。密码本应该用从 1 到 26 的数字填充,可能少到每页一个数字,但通常一页有 4 到 5 个数字。要加密消息的第一个字母,将等价数(如,"A" = 1, "Z" = 26)与密码本上显示的第一个值相加。如果得出的数字大于 26,从该值中减去 26。结果被转换回一个字母,然后写下它。对该页上的每个数字执行这一操作,然后密码本的最上一页被撕下销毁。随后为第二组及以后组的字母重复这一过程。根据这种组织,密码本每页上最少可以包含一个数字。通常他们在每页包含 5 个数字的组。总而言之,使用这种方法编码消息是种单调乏味的工作。 解密消息需要的密码本和用于加密消息所用的密码本一模一样。从密码本的第一页开始,密文的第一个字母被转换成一个数字,从密码本上的数中减去这个值。如果结果是零或小于零的数,在结果上加 26。然后这个数再被转换回字母。(这种简单的算法总是能产生和原始纯文本第一个字符相同的字母。)本子的最上面一页就用完了,撕下并销毁。然后,继续对本子第二页进行解密。这又是单调乏味的工作。 一次性密码本 - 密码本的生成 生成密码本是另一个难题。使用 War and Peace 这段文本作为密码本的基础不是好主意。因为密钥不是随机的,那么密文就不是随机的。已使用的一种技术与今天的抽奖活动使用的方法相同。编了号的球被放在一个封闭的箱子中,空气将球吹得到处都是。一个操作员使用这个箱子来创建两个相同的密码本。对于密码本上的第一个字符,操作者看都不看就从箱子中抽取出一个球。在两个密码本上记录下球上的数字,然后将球放回到箱子中。然后重复这个过程。乏味的工作。 即使象选球这样的技术在现实世界中也不是很实用的。事实上,生成和分发密码本的困难正是在第二次世界大战中选择几百个不那么安全的密码代码的一个主要原因。 一次性密码本在战场中使用时就显示了非常多的问题。首先,密码本必须在两个通信方之间同步。请考虑当 Alice 向 Bob 发送消息,而 Bob 同时又向 Alice 发送消息的情况。他们两个人使用了某些密钥来进行加密。如果每一方都精确地遵照算法操作,那么两个人就都不能有正确的用于解密任何一方消息的密码本了! 更糟糕的是,使用相同的密钥加密两条消息会泄露算法的安全性。如果某个人要猜两条使用相同本子加密的消息,这个人就可以同时恢复这两条原始消息。这种风险经常会产生。懒惰的士兵偶尔会使用用过的本子,有目的的密码专家注意到了,就会使通信双方认为非常安全的消息,此时也不怎么安全了。 要解决这个问题,有必要给 Alice 和 Bob 两个人每人一组两本一次性密码本。一组本子特定于从 Alice 到 Bob 的消息,另一组特定于从 Bob 到 Alice 的消息。现在,只要密码本不被重用,并且只要密码本在使用后被销毁,使得没人能够泄露用过的密码本,所有内容就都是安全的了。 不幸的是仍然有另一个问题 -- 数据完整性。让我们设想一下 Alice 在早上 10:00 向 Bob 发送了一条消息,然后在下午 1:00 发送了一条,最后在晚上 5:00 又发送了一条消息。如果早上 10:00 的消息由于送信人中弹而永远不能到达,Bob 要解密后面两条消息就非常困难了。不是不可能,但这是主要的不便,因为 Bob 在尝试解密下午 1:00 的消息时,必须猜出要从本子中的什么地方开始。一种解决这种问题的办法是为消息编号,并对每条消息只使用一个本子。另一个解决方案是每天使用一个本子;这样一次只能扰乱一天的通信。   一次性密码本 - 安全性 在理论上,此种密码是牢不可破的,而它的安全性已由克劳德·艾尔伍德·香农所证明。    虽然它在理论上的安全性无庸置疑,但在实际操作上却有着以下的问题:    用以加密的文本,也就是一次性密码本,必须确实是随机产生的。    它至少必须和被加密的文件等长。    用以加密的文本只能用一次,且必须对非关系人小心保密,不再使用时,用以加密的文本应当要销毁,以防重复使用。 一次性密码本 - 加密方法 首先手上要有一本一次性密码本用以加密文件,接着将一次性密码本里的字母,与被加密文件的字母给依序按某个事先约定的规定一一相混,其中一个相混的作法是将字母指定数字(如在英语中,将A至Z依序指定为0至25)然后将一次性密码文本上的字母所代表的数字和被加密文件上相对应的数字给相加,再除以该语言的字母数,假设是n(如英语为26),若就此得出来的某个数字小于零,则将该小于零的数给加上n,如此便完成加密。 一次性密码本 - 举例说明 举例一 若要加密讯息“This is an example”,而用以加密的一次性密码本如下所示:    MASKL NSFLD FKJPQ    则利用指定数字的方法,可分别将两者给做以下的转换:    This is an example → 19 7 8 18 8 18 0 13 4 23 0 12 15 11 4    MASKL NSFLD FKJPQ → 12 0 18 10 11 13 18 5 11 3 5 10 9 15 16    两者依序相加后得到的讯息如下:    31 7 26 28 19 31 18 18 15 26 5 22 24 26 20    将以上得到的讯息模26后可得:    5 7 0 2 7 5 8 8 11 0 5 22 24 0 20    它也就变成了    FHACHFIILAFWYAU    而若要解密以上信息,反向操作即可。 举例二 考虑这样一条消息:"One-time pads are cool."。我们必须把它写成: O N E T I M E P A D S A R E C O O L 转换成数字,消息就是: 15 14 05 20 09 13 05 16 01 04 19 01 18 05 03 15 15 12 假设本子上的前 18 个数字是: 02 15 18 24 02 14 24 09 20 14 09 10 01 17 19 02 19 13 对于第一个字母,我们将 15 和 2 相加得到 17。"Q" 是字母表中第 17 个字母,因此是密文的第一个字符。对于第二个字母,我们将 14 和 15 相加得到 29。因为该数大于 26,我们减去 26,得到 3,它转换成字母 "C"。最终我们得到以下密文: Q C W R K A C Y U R B K S V V Q H Y 要解密这条消息,首先将密码术文本转换回数字: 17 03 23 18 11 01 03 25 21 18 02 11 19 22 22 17 08 25 我们所使用的本子和用来加密消息的本子完全一样。因此,本子上的第一个数字是 2。从 17 中减去 2,得到 15。将 15 转换回字母 "O"。下一步,从密文中取出第二个数字 3,从中减去 15,因为 15 是本子上的第二个数。结果是 -12。因为这个结果小于 1,在这个数上加 26,得出 14。第 14 个字母是 "N"。以那种方法继续,最后我们就恢复了整条消息。 一次性密码本 - 相关分析 一次性密码本是否真有一种完美的加密算法?从理论上说,有的。如果使用正确的话,一次性密码本就是不易破解的。但这种算法在实践中用得并不多。在这篇文章中,我们将谈谈一次性密码本、其优缺点,以及为什么有其它加密算法存在。 密码术有时更是一种艺术而非科学。例如,我们无法确切回答一个象“Rijndael 算法有多安全?”这种看似简单的问题。因为 Rijndael 使用 128 位(或更大)密钥,我们甚至可以用到数字 2 128。但在现实中,没人真的知道 Rijndael 有多安全,因为要证明有关算法的安全性保证相当困难。要假设没有一种攻击能成功破坏任何给定的算法几乎是不可能的。有一个困难是每隔一段时间,新的密码攻击就会被发现。但当我们考虑到想证明一种密码术能经受得住 任何未来的攻击,甚至包括以后几个世纪都不会被发现时,事情就变得更加困难了。 在现实中,那些确信安全的常用密码术实际上有可能安全,也有可能不安全。我们信任密码术是因为还没有人能破解它,而不是因为 知道 它是安全的。这就是为什么密码专家更倾向于推荐那些已被深入审查过的密码术,而不是更新或专用的密码算法。工作原理是,如果许多聪明的脑瓜都无法破解一种算法,那么比起没人仔细看过的那些算法来,它更有可能是安全的。关于一个问题思考的人越多,我们越有可能信任一种算法。这意味着我们最终讨论的是算法的“最佳情况”安全性特性。使用对称密钥密码术,“最佳情况”时常与密钥空间的大小相关 -- 除非已经知道有比尝试每个可能的密钥来公开数据(蛮力攻击)更好的办法。以上这些方法的结果可能会引起一些不安: 所有对称密钥算法都可以被破解,只要有足够的时间。 最终,我们将希望寄 托在一种想法上,即没有人能有足够的时间来破译我们的代码!例如,如果我们使用的是 256 位的加密算法,没有仅比蛮力攻击更有效的攻击来对付它,我们就可以认为一个攻击者在有限时间内破解密码的几率相当小。 从数学上证明有关公钥算法的问题比对称算法要来得容易。这是因为公钥算法往往基于详细定义的数学问题(例如由质数组成的因式分解组合)。与之相反,对称算法往往是一组 特别 的替代与排列,要在上下文中分析它们比较困难。因此,假设有种完美的实现,我们知道破解 RSA 算法的困难与对非常大的数字进行因子分解的困难是紧密联系在一起的。数学家相信对大的数字进行因式分解在相当长的一段时间内也不能完成。不幸的是,至今没有一个人能 证明因式分解确实那么难。 即使我们知道因式分解是那么的困难(并假设没有其它的实现或设计问题),对于 RSA 是可破解的仍然有一些理论限制,与对称算法的情况一样。如果在有限时间内尝试出密钥的同时空等,那么绝对能破译 RSA 密钥!^[2] 附图 上传图片 盘点密码学相关知识 盘点密码学相关知识,密码学是研究编制密码和破译密码的技术科学。 密码学 安全协议 保密性 布尔函数 布莱切利园 插值攻击 CAMELLIA CANONICAL X DES 儿童黑话 恩尼格玛密码机 EAP 费马素性检验 伏尼契手稿 高级加密标准 公开金钥基础建设 GNUPG 可视密码 克里普托斯 可信计算 柯克霍夫原则 可忽略函数 量子计算机 密码 米勒-拉宾检验 密码分析 MD4 MD5 频率分析 PGP 穷举法 强素数 RSA加密算法 数字签名 随机 散列 SHARK SHA家族 椭圆曲线密码学 通称号 唯密文攻击 选择明文攻击 选择加密 XML ENCRYPT XML SIGNATU 隐写术 一次性密码本 全通型量子通信网 凯撒密码 博福特密码 口令 可信平台模块 密码强度 密码棒 密码盘 对等加密 爱丽丝与鲍伯 拜占庭将军问题 盲因子 经典密码 自动密钥密码 猪圈密码 身份验证 选择密文攻击 量子密码学 电子证书 注释与参考: [1]^应用一次性密码本安全地储存和传送数据的方法和系统  ____________________ [2]^一次性密码本 ____________________ 被引用:本词条已被如下媒体引用 我来补充 媒体: _______________ 标题: ________________________________________ URL: ____________________ 作者: __________ 日期: __________ 保存取消 开放分类:我来补充 功能 密码学 技术 科学技术 开放分类: ____________________ [删除] ____________________ [删除] ____________________ [删除] ____________________ [删除] 同义词: 同义词: 分享到: 编辑词条 互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。如需转载,请注明来源于www.hudong.com。 讨论区 [snsdefault-50.gif] [BUTTON] IFRAME: citiaozhengwen_right_1 此词条还可添加 信息模块 地图 相关任务 任务名 发起人 盘点密码学相关知识 冯三石 IFRAME: http://hdad.hudong.com/hdad/wiki/doc_index_r2.html 相关词条 编辑 * 强素数 * 可信平台模块 * 选择加密 * 数据 IFRAME: http://www.hudong.com/tuijian/entry-right.html 2010广州车展 IFRAME: http://www.hudong.com/all/footsimp.html #Sunsol (‪中文(中国大陆)‬) free wysiwyg wiki Tpip 224 出自Sunsol 跳转到: 导航, 搜索 目录 * 1 主题 -- 加密 + 1.1 模块 -- crypt : 创建和验证Unix风格的密码 o 1.1.1 函数: + 1.2 模块 -- md5 : 创建MD5校验码 o 1.2.1 常数: o 1.2.2 类: o 1.2.3 方法: + 1.3 模块 -- rotor : 恩尼格玛密码机 o 1.3.1 类: o 1.3.2 方法: + 1.4 模块 -- sha : SHA安全散列算法 o 1.4.1 类: o 1.4.2 方法: * 2 主题 -- 压缩 + 2.1 模块 -- gzip : 处理gzip压缩文件 o 2.1.1 类: o 2.1.2 方法和属性: + 2.2 模块 -- zipfile : 读写ZIP文件 o 2.2.1 常数: o 2.2.2 函数: o 2.2.3 类: o 2.2.4 方法和属性: o 2.2.5 异常: + 2.3 模块--zlib:压缩和解压的zlib库 o 2.3.1 常数: o 2.3.2 函数: o 2.3.3 方法和属性: o 2.3.4 异常: [编辑] 主题 -- 加密 Python的标准库里没有一般的加密模块,只提供了少数几个功能有限的加密算法,包括若干哈希加密和一个弱对称加密算法。这里列出一些常用的加密技术: + 对称加密:* 源文本M由一个密匙K产生加密文本C,密匙K也可以用来解密文本C还原成源文本M。[rotor]模块提供了一个不是特别可靠的对称加密应用。 + 哈希加密:* 是一种从源文本M生成一个较短的哈希值H的技术,其具有以下几个特点:只有H很难获得可以生成H的文本M',不同的两个文本M和M'生成的两个H只有极小的可能情况下才会相同。文本M'生成的H'和H之间没有什么关系,基本上无法从此推导出源文本M。模块[crypt], [md5]和[sha]提供了一些哈希加密算法。 + 非对称加密:* 又叫做公匙加密。加密过程中使用一对密匙K{公}和K{私}。非对称加密的算法是P(M,K)。对于源文本M而言,其相当于P(K{私},P(M,K{公}))。只有公匙K{公}是很难通过前面这个公式获得私匙K{私}的。同样只有加密文本P(M,K{公})也很难获得源文本M。通常在非对称加密系统里会生成K{公}和K{私},然后给其他用户K{公}自己保留K{私}。标准库里没有这方面的功能。 + 数字签名:* 数字签名实际上是一种反转的公匙加密。在很多情况下二者采用同样的算法。数字签名包括一对密匙K{验证}和K{签名}。验证算法是S(M,K),对于任何信息M而言,M等于S(K{验证},S(M,K{签名}))。只有K{验证}是很难通过前面的公式获得K{签名}的。只有签名信息S(M,K{签名})是很难伪造出同样签名的其他信息。通常在数字签名系统中用户公布K{验证}给其他用户,自己保留K{签名}。标准库里没有这方面的功能。 -*- 这些都是最主要的加密技术。更详细的密码介绍资料可以在作者的网站上找到。基础教材是_加密的概念一_: [1] 进一步的教材是_加密的概念二_: [2] 最后是_加密协议_: [3] 有些第三方模块库可以处理加密任务,相关的介绍在[4]。这些都涉及到具体细节,基本和文字处理关系不大。此外,有些第三方工具库往往需要依赖一些其他的非Python的库文件,有些只适合部分平台,同时这些工具不一定能提供Python新版本可用的库文件。 下面列出一些比较常用的第三方加密模块。 + mxCrypto + amkCrypto [mxCrypto]和[amkCrypto]是最为通用的,相关库文件在: [5] 这些加密模块的文档资料在: [6] + M2Crypto + M2Crypto [mxCrypto]和[amkCrypto]模块主要用于Unix平台。类似的Windows平台可以使用的是[M2Crypto]。资料和文件在: [7] + fcrypt [fcrypt]是纯Python的模块。但在效率上可能不太好: [8] [编辑] 模块 -- crypt : 创建和验证Unix风格的密码 函数'crypt()'是一个常用的但有些陈旧的加密验证工具。在Unix系统中,'crypt()'只是系统库功能的Python封装。'crypt()'的加密形式主要基于DES。[crypt]模块只有安装在类Unix系统的Python里才有,该模块依赖于基本系统库。第三方[fcrypt]模块提供了同样的功能,不过是由纯Python实现的。 [编辑] 函数: + crypt.crypt(passwd, salt) 返回13个字节的ASCII密码。参数'passwd'必须是至少8个字符长度的字符串。参数'salt'必须是至少两个字符的字符串。 >>> from crypt import crypt >>> crypt('mypassword','XY') 'XY5XuULXk4pcs' >>> crypt('mypasswo','XY') 'XY5XuULXk4pcs' >>> crypt('mypassword...more.characters','XY') 'XY5XuULXk4pcs' >>> crypt('mypasswo','AB') 'AB06lnfYxWIKg' >>> crypt('diffpass','AB') 'ABlO5BopaFYNs' 参考: `fcrypt`, [md5], [sha] [编辑] 模块 -- md5 : 创建MD5校验码 MD5哈希算法是一种被广泛使用的加密算法。和[crypt]不同的是,[md5]可以用于任意字符串(但不包括Unicode字符串)。如果不考虑的兼容性和其他一些因素的话,使用SHA要比MD5好,[sha]模块提供了这个算法。使用[md5]的方法类似`binascii.crc32()`,产生的哈希值可以通过循环逐步获得最后需要的字符串。MD5算法产生的是128位哈希校验码。 [编辑] 常数: + md5.MD5Type 标示对象使用的算法是MD5。 [编辑] 类: + md5.new([s]) 创建[md5]对象。 >>> import md5 >>> md5.new('Mary had a little lamb').hexdigest() 'e946adb45d4299def2071880d30136d4' + md5.md5([s]) 和`md5.new`一样。 [编辑] 方法: + md5.copy() 复制一份新的[md5]对象。 >>> import md5 >>> m = md5.new('spam and eggs') >>> m.digest() '\xb5\x81f\x0c\xff\x17\xe7\x8c\x84\xc3\xa8J\xd0.g\x85' >>> m2 = m.copy() >>> m2.digest() '\xb5\x81f\x0c\xff\x17\xe7\x8c\x84\xc3\xa8J\xd0.g\x85' >>> m.update(' are tasty') >>> m2.update(' are wretched') >>> m.digest() '*\x94\xa2\xc5\xceq\x96\xef&\x1a\xc9#\xac98\x16' >>> m2.digest() 'h\x8c\xfam\xe3\xb0\x90\xe8\x0e\xcb\xbf\xb3\xa7N\xe6\xbc' + md5.digest() 返回128位哈希校验码即16个字节的字符串。 >>> import md5 # Python 2.1+ >>> m = md5.new('spam and eggs') >>> m.digest() '\xb5\x81f\x0c\xff\x17\xe7\x8c\x84\xc3\xa8J\xd0.g\x85' >>> import md5 # Python <= 2.0 >>> m = md5.new('spam and eggs') >>> m.digest() '\265\201f\014\377\027\347\214\204\303\250J\320.g\205' + md5.hexdigest() 以十六进制编码形式返回128位哈希校验码。 >>> import md5 >>> m = md5.new('spam and eggs') >>> m.hexdigest() 'b581660cff17e78c84c3a84ad02e6785' + md5.update(s) 增加后续字符串。类似CRC循环校验。 >>> import md5 >>> m1 = md5.new('spam and eggs') >>> m2 = md5.new('spam') >>> m2.update(' and eggs') >>> m3 = md5.new('spam') >>> m3.update(' and ') >>> m3.update('eggs') >>> m1.hexdigest() 'b581660cff17e78c84c3a84ad02e6785' >>> m2.hexdigest() 'b581660cff17e78c84c3a84ad02e6785' >>> m3.hexdigest() 'b581660cff17e78c84c3a84ad02e6785' 参考: [sha], [crypt], `binascii.crc32()` [编辑] 模块 -- rotor : 恩尼格玛密码机 在Python标准库里[rotor]模块是为数不多的几个有趣模块之一(2.4中移除)。关于这个密码机的故事可以到网上搜索,估计是因为它和图灵的关系才被纳入标准库。 [编辑] 类: + rotor.newrotor(key [,numrotors]) 产生转子。参数'numrotors'用于指定转子的数量,默认为6。 >>> rotor.newrotor('mypassword').encrypt('Mary had a lamb') '\x10\xef\xf1\x1e\xeaor\xe9\xf7\xe5\xad,r\xc6\x9f' 加密和解密过程如下: >>> import rotor >>> C = rotor.newrotor('pass2').encrypt('Mary had a little lamb') >>> r1 = rotor.newrotor('mypassword') >>> C2 = r1.encrypt('Mary had a little lamb') >>> r1.decrypt(C2) 'Mary had a little lamb' >>> r1.decrypt(C) # Let's try it '\217R$\217/sE\311\330~#\310\342\200\025F\221\245\263\036\220O' >>> r1.setkey('pass2') >>> r1.decrypt(C) # Let's try it 'Mary had a little lamb' [编辑] 方法: + rotor.decrypt(s) 解密。 + rotor.decryptmore(s) 解密后续字符串,保持之前解密时的转子状态。 + rotor.encrypt(s) 加密。 + rotor.encryptmore(s) 加密后续字符串,保持之前解密时的转子状态。 + rotor.setkey(key) 设新的密匙。 [编辑] 模块 -- sha : SHA安全散列算法 美国国家标准与技术研究所的安全散列算法是目前应用最好的哈希加密算法。同[md5]一样,[sha]可以用于任意字符串(但不包括Unicode字符串)。SHA要好于MD5算法。[sha]的使用方法类似`binascii.crc32()`。算法产生的是160位哈希特征值。 [编辑] 类: + sha.new([s]) 创建[sha]对象。 >>> import sha >>> sha.new('Mary had a little lamb').hexdigest() 'bac9388d0498fb378e528d35abd05792291af182' + sha.sha([s]) 同`sha.new`。 [编辑] 方法: + sha.copy() 复制一份新的[sha]对象。 >>> import sha >>> s = sha.new('spam and eggs') >>> s.digest() '\276\207\224\213\255\375x\024\245b\036C\322\017\2528 @\017\246' >>> s2 = s.copy() >>> s2.digest() '\276\207\224\213\255\375x\024\245b\036C\322\017\2528 @\017\246' >>> s.update(' are tasty') >>> s2.update(' are wretched') >>> s.digest() '\013^C\366\253?I\323\206nt\2443\251\227\204-kr6' >>> s2.digest() '\013\210\237\216\014\3337X\333\221h&+c\345\007\367\326\274\321' + sha.digest() 返回160位哈希校验码即20个字节的字符串。 >>> import sha # Python 2.1+ >>> s = sha.new('spam and eggs') >>> s.digest() '\xbe\x87\x94\x8b\xad\xfdx\x14\xa5b\x1eC\xd2\x0f\xaa8 @\x0f\xa6' >>> import sha # Python <= 2.0 >>> s = sha.new('spam and eggs') >>> s.digest() '\276\207\224\213\255\375x\024\245b\036C\322\017\2528 @\017\246' + sha.hexdigest() 以十六进制编码形式返回校验码。 >>> import sha >>> s = sha.new('spam and eggs') >>> s.hexdigest() 'be87948badfd7814a5621e43d20faa3820400fa6' + sha.update(s) 增加后续字符串。类似CRC循环校验。 >>> import sha >>> s1 = sha.sha('spam and eggs') >>> s2 = sha.sha('spam') >>> s2.update(' and eggs') >>> s3 = sha.sha('spam') >>> s3.update(' and ') >>> s3.update('eggs') >>> s1.hexdigest() 'be87948badfd7814a5621e43d20faa3820400fa6' >>> s2.hexdigest() 'be87948badfd7814a5621e43d20faa3820400fa6' >>> s3.hexdigest() 'be87948badfd7814a5621e43d20faa3820400fa6' 参考: [md5], [crypt], `binascii.crc32()` [编辑] 主题 -- 压缩 在计算机的历史上已经发明了大量的数据压缩格式,大都采用的是LZ编码或哈夫曼编码技术。压缩在各个方面都有应用,文件压缩是使用最广泛的。在MS-DOS和Windows里我们经常看到ARC,PAK,ZOO,LHA,ARJ,CAB,RAR等等压缩格式,但最常见的还是ZIP格式。在Unix系统里大多也是gzip格式,不过bzip的压缩率更好一些。在MacOS中最流行的格式是SIT。其他平台也有很多压缩格式,但ZIP格式基本上是所有平台都支持的一种压缩格式。 Python标准库包括了一些压缩模块。在[zlib]模块中主要针对的是底层字符串数据压缩,并不直接对文件操作。[zlib]本身也被其他高一级的模块使用。 [gzip]和[zipfile]提供的是压缩文件接口。[gzip]和[zipfile]的主要不同是格式上的差异,一个是GZ格式一个是ZIP格式。'gzip'用于操作单一文件就像归档工具'tar',特别是Unix系统中的类似'foo.tgz'或'foo.tar.gz'等就是由'tar'归档以后再作'gzip'压缩后的文件。ZIP则是同时作压缩和归档的处理。正因如此,[gzip]可以直接操作GZ文件。[ziplib]提供了更为专业的压缩操作如浏览压缩文件包含的内容或专用的图像压缩等等。 数据压缩的介绍请参考附录B。 [编辑] 模块 -- gzip : 处理gzip压缩文件 [gzip]模块可以直接操作'gzip'文件。压缩数据可以读出也可以写入,所有的这些读写操作都会自动解压或压缩。下面是个简单的例子: #---------- gzip_file.py ----------# # GZ文件和其他一般文件基本上操作方式没有区别 import gzip, glob print "Size of data in files:" for fname in glob.glob('*'): try: if fname[-3:] == '.gz': s = gzip.open(fname).read() else: s = open(fname).read() print ' ',fname,'-',len(s),'bytes' except IOError: print 'Skipping',file 模块[gzip]对[zlib]进行了包装,主要是由后者来做实际的压缩和解压处理。在许多方面,[gzip]就像[mmap]和[StringIO]一样处理的是类文件对象。 参考: [mmap], [StringIO], [cStringIO] [编辑] 类: + gzip.GzipFile([filename=... [,mode="rb" [,compresslevel=9 [,fileobj=...]]]]) 创建[gzip]文件对象。这个对象支持大多数文件对象操作,除了不能使用'.seek()'和'.tell()'。 参数'mode'默认为'rb'('r','rb','a','ab','w'或'wb')。参数'compresslevel'指定了压缩的级别。默认为最高级别9,级别1基本上没有太多的压缩,但运行速度快。参数'fileobj'如果指定,则'filename'和'mode'采用这个指定文件对象的属性。 + gzip.open(filename=... [mode='rb [,compresslevel=9]]) 类似`gzip.GzipFile`,但没有了文件对象参数。一般对GZ文件操作都是使用文件名来指定操作的文件,而不是用文件对象。 [编辑] 方法和属性: + gzip.close() 关闭[gzip]对象。如果是基于文件对象建立的'gzip'对象,则关闭时不会关闭原文件对象。 参考: `FILE.close()` + gzip.flush() 将所有更动写入磁盘。 参考: `FILE.close()` + gzip.isatty() 返回0。这是为了兼容文件对象。 参考: `FILE.isatty()` + gzip.myfileobj 基本文件对象。 + gzip.read([num]) 和`FILE.read()`一样。 参考: `FILE.read()` + gzip.readline([length]) 和`FILE.readline()`一样。 参考: `FILE.readline()` + gzip.readlines([sizehint=...]) 和`FILE.readlines()`一样。 参考: `FILE.readlines()` + gzip.write(s) 和`FILE.write()`一样。 参考: `FILE.write()` + gzip.writelines(list) 类似`FILE.writelines()`。不会自动插入换行符。 参考: `FILE.writelines()`, `StringIO.StringIO.writelines()` 参考: [zlib], [zipfile] [编辑] 模块 -- zipfile : 读写ZIP文件 [zipfile]模块可以操作各种ZIP文件,包括PKZip,Info-ZIP和WinZip生成的压缩文件。由于ZIP格式可以包含多个文件,所以[zipfile]并不像[gzip]那样采用类文件对象模式。尽管如此,它使用起来还是很方便,可以添加新的文件,创建新的压缩档或处理压缩档里的文件和目录。 例如,使用[zipfile]模块的常用方式如下。 >>> for name in 'ABC': ... open(name,'w').write(name*1000) ... >>> import zipfile >>> z = zipfile.ZipFile('new.zip','w',zipfile.ZIP_DEFLATED) # 新压缩档 >>> z.write('A') # 添加文件 >>> z.write('B','B.newname',zipfile.ZIP_STORED) >>> z.write('C','C.newname') >>> z.close() # 关闭压缩档 >>> z = zipfile.ZipFile('new.zip') # 读取压缩档 >>> z.testzip() # 测试,如果正常返回'None' >>> z.namelist() # 里面有什么? ['A', 'B.newname', 'C.newname'] >>> z.printdir() # 细节 File Name Modified Size A 2001-07-18 21:39:36 1000 B.newname 2001-07-18 21:39:36 1000 C.newname 2001-07-18 21:39:36 1000 >>> A = z.getinfo('A') # 获取ZipInfo对象 >>> B = z.getinfo('B.newname') # 获取ZipInfo对象 >>> A.compress_size 11 >>> B.compress_size 1000 >>> z.read(A.filename)[:40] # 读 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' >>> z.read(B.filename)[:40] # 读 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB' >>> # For comparison, see what Info-Zip reports on created archive >>> import os >>> print os.popen('unzip -v new.zip').read() Archive: new.zip Length Method Size Ratio Date Time CRC-32 Name ------ ------ ---- ----- ---- ---- ------ ---- 1000 Defl:N 11 99% 07-18-01 21:39 51a02e01 A 1000 Stored 1000 0% 07-18-01 21:39 7d9c564d B.newname 1000 Defl:N 11 99% 07-18-01 21:39 66778189 C.newname ------ ------ --- ------- 3000 1022 66% 3 files 模块[zipfile]对[zlib]进行了包装,主要是由后者来做实际的压缩和解压处理。 [编辑] 常数: 一些字符串常数([struct]格式)被用来确认ZIP格式。这些常数,一般处理的时候不会被用到。 #*----- zipfile constants -----# zipfile.stringCentralDir = 'PK\x01\x02' zipfile.stringEndArchive = 'PK\x05\x06' zipfile.stringFileHeader = 'PK\x03\x04' zipfile.structCentralDir = '<4s4B4H3l5H2l' zipfile.structEndArchive = '<4s4H2lH' zipfile.structFileHeader = '<4s2B4H3l2H' 还有两个象征压缩方法的常数定义。 #*----- zipfile constants -----# zipfile.ZIP_STORED = 0 zipfile.ZIP_DEFLATED = 8 [编辑] 函数: + zipfile.is_zipfile(filename=...) 检查'filename'对应的文件是否是ZIP压缩档。如果有效则返回1。这个函数并不能保证压缩档完全完整,但可以用于检查压缩档类型。 [编辑] 类: + zipfile.PyZipFile(pathname) 创建`zipfile.ZipFile`对象,包含了`zipfile.ZipFile.writepy()`专用函数,用于压缩'*.py[oc]'。这个类一般用不到,但在使用[distutils]的时候很有用。 + zipfile.ZipFile(file=... [,mode='r' [,compression=ZIP_STORED]]) 创建新的`zipfile.ZipFile`对象。这个对象用于管理ZIP压缩档。第一个参数'file'指定操作的文件。第二个参数'mode'可以有以下三种字符值:'r'表示只读模式;'w'表示建立新压缩档;'a'表示改写现有的压缩档。参数'compression'指明压缩方法--ZIP_DEFLATED方法需要使用zlib系统库。 + zipfile.ZipInfo() 创建新的`zipfile.ZipInfo`对象。这个对象用于处理压缩档内部的文件。一般来说,不需要手动生成`zipfile.ZipInfo`对象,大都是使用`zipfile.ZipFile.infolist()`,`zipfile.ZipFile.getinfo()`和`zipfile.ZipFile.NameToInfo`获取对象。然而,在特殊情况下,像`zipfile.ZipFile.writestr()`会需要用到创建新的`zipfile.ZipInfo`对象。 [编辑] 方法和属性: + zipfile.ZipFile.close() 关闭`zipfile.ZipFile`对象。 + zipfile.ZipFile.getinfo(name=...) 返回'name'对应的`zipfile.ZipInfo`对象。如果'name'不是压缩档内部的文件名则会产生'KeyError'错误。 + zipfile.ZipFile.infolist() 返回压缩档的所有文件对应的`zipfile.ZipInfo`对象。 + zipfile.ZipFile.namelist() 返回压缩档内部的所有文件名(目录会嵌套在列表里)。 + zipfile.ZipFile.printdir() 打印内部文件相关信息。类似'unzip'的'-l'操作。 + zipfile.ZipFile.read(name=...) 读取内部文件名为'name'的文件内容。 + zipfile.ZipFile.testzip() 测试压缩档的完整性。如果有错误则返回第一个出现错误的`zipfile.ZipInfo`对象。如果完整无误则返回None。 + zipfile.ZipFile.write(filename=... [,arcname=... [,compress_type=...]]) 增加一个'filename'文件。如果第二个参数'arcname'有指明,则使用已存储的文件(否则使用'filename'文件)。第三个参数'compress_type'指明压缩方法。对象必须是'w'或'a'模式。 + zipfile.ZipFile.writestr(zinfo=..., bytes=...) 参数'zinfo'指定了写入或增加的文件内部路径信息,参数'bytes'是数据内容。 + zipfile.ZipFile.NameToInfo 内部文件名和`zipfile.ZipInfo`对象的对应关系。`zipfile.ZipFile.getinfo()`仅仅是引用这里的某一项。 + zipfile.ZipFile.compression 对象使用的压缩方式。 + zipfile.ZipFile.debug = 0 设置调试信息的等级。默认为0(没有调试信息),3为详细信息。 + zipfile.ZipFile.filelist 内部所有的`zipfile.ZipInfo`对象。 + zipfile.ZipFile.filename `zipfile.ZipFile`对象对应的文件名。不要修改! + zipfile.ZipFile.fp `zipfile.ZipFile`对象对应的基本文件对象。不要修改! + zipfile.ZipFile.mode `zipfile.ZipFile`对象的可读写模式。不要修改! + zipfile.ZipFile.start_dir 目录信息的开始位置。不要修改! + zipfile.ZipInfo.CRC 文件的CRC校验值。不要修改! + zipfile.ZipInfo.comment 文件注释。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.compress_size 文件的压缩大小。不要修改! + zipfile.ZipInfo.compress_type 文件的压缩方式。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.create_system 文件的创建系统。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.create_version 文件使用的PKZip版本。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.date_time 文件时间戳。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.external_attr 文件的解压属性。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.extract_version 解压文件需要的PKZip版本。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.file_offset 文件的开始位置。不要修改! + zipfile.ZipInfo.file_size 文件的原始大小。不要修改! + zipfile.ZipInfo.filename 文件名。适当修改(主要用于`zipfile.ZipFile.writestr()`). + zipfile.ZipInfo.header_offset 文件头偏移值。不要修改! + zipfile.ZipInfo.volume 文件分卷。不要修改! [编辑] 异常: + zipfile.error 处理ZIP文件时的错误。 + zipfile.BadZipFile `zipfile.error`的别名。 参考: [zlib], [gzip] [编辑] 模块--zlib:压缩和解压的zlib库 [zlib]是Python标准库里所有压缩模块的底层引擎。此外,[zlib]可以直接压缩和解压数据,而不需要对文件操作。Python的[zlib]模块依赖于平台系统zlib库。 [zlib]主要有两种基本操作方式,人们可以通过使用`zlib.compress()`来压缩,用`zlib.decompress()`来解压。在更复杂的模式中,还可以创建一个压缩或解压的对象来操作连续的数据块。这种复杂模式的运作类似于`sha.sha.update()`,`md5.md5.update()`,`rotor.encryptmore()`或`binascii.crc32()`,主要用来分次处理大量的数据而不是一次处理。 [编辑] 常数: + zlib.ZLIB_VERSION 系统安装的zlib库版本。 + zlib.Z_BEST_COMPRESSION = 9 最高压缩级别。 + zlib.Z_BEST_SPEED = 1 最快的压缩级别。 + zlib.Z_HUFFMAN_ONLY = 2 中档压缩级别,使用哈夫曼编码,二不是LZ编码。 [编辑] 函数: + zlib.adler32(s [,crc]) 返回字符串的Adler32校验码。参数'crc'用于增量校验。Adler32校验比普通CRC32校验快。和[md5]或[sha]不同的是,Adler32校验只能用于检测数据是否损坏,而不用于加密。 参考: `zlib.crc32()`, [md5], [sha] + zlib.compress(s [,level]) 压缩字符串。参数'level'指定压缩的等级,范围从1至9,例如Z_BEST_COMPRESSION和Z_BEST_SPEED,默认值为6。 参考: `zlib.decompress()`, `zlib.compressobj` + zlib.crc32(s [,crc]) 返回字符串的CRC32校验码。参数'crc'用于增量校验。和[md5]或[sha]不同的是,CRC32校验只能用于检测数据是否损坏,而不用于加密。 相当于`binascii.crc32()`。 参考: `binascii.crc32()`, `zlib.adler32()`, [md5], [sha] + zlib.decompress(s [,winsize [,buffsize]]) 解压字符串。参数'winsize'指定窗口缓冲区的大小,默认是15。参数'buffsize'指定解压缓冲区的大小,默认是16384。一般不需要改变这些默认大小。 参考: `zlib.compress()`, `zlib.decompressobj` 对象生成函数: [zlib]里并没有直接定义具体的类。`zlib.compressobj()`和`zlib.decompressobj()`是生成对象的函数,而不是类。也就是说,他们返回的对象很像类产生的对象,但没有绑定居体类的成员。对于大多数用户来说,基本上没有差异,二者的使用方法没有什么区别。 + zlib.compressobj([level]) 创建压缩对象。该压缩对象可以增量逐步压缩字符串块,同时保留先前压缩的内部状态参数。参数'level'指定压缩的等级,范围从1至9,默认值为6。 参考: `zlib.compress()`, `zlib.decompressobj()` + zlib.decompressobj([winsize]) 创建解压对象。该解压对象可以增量逐步解压字符串块,同时保留先前解压的内部状态参数。参数'winsize'指定窗口缓冲区的大小,默认是15。 参考: `zlib.decompress()`, `zlib.compressobj()` [编辑] 方法和属性: + zlib.compressobj.compress(s) 添加需要压缩的数据。如果数据足够则返回相应的压缩数据,否则返回空字符串。例如: #---------- zlib_objs.py ----------# # Demonstrate compression object streams import zlib, glob decom = zlib.decompressobj() com = zlib.compressobj() for file in glob.glob('*'): s = open(file).read() c = com.compress(s) print 'COMPRESSED:', len(c), 'bytes out' d = decom.decompress(c) print 'DECOMPRESS:', len(d), 'bytes out' print 'UNUSED DATA:', len(decom.unused_data), 'bytes' raw_input('-- %s (%s bytes) --' % (file, `len(s)`)) f = com.flush() m = decom.decompress(f) print 'DECOMPRESS:', len(m), 'bytes out' print 'UNUSED DATA:', len(decom.unused_data), 'byte' 参考: `zlib.compressobj.flush()`, `zlib.decompressobj.decompress()`, `zlib.compress()` + zlib.compressobj.flush([mode]) 生成完整的压缩数据。参数'mode'默认为Z_FINISH,即该压缩对象不再使用,这时应该'del'它。如果指定Z_SYNC_FLUSH或Z_FULL_FLUSH,压缩对象仍然可以使用,但原先的压缩数据将不再保留。 参考: `zlib.compress()`, `zlib.compressobj.compress()` + zlib.decompressobj.unused_data 就像上面那个例子显示的那样,`zlib.decompressobj.unused_data`是一个属性而不是方法,其中包含任何还未能处理的解压数据。通常情况下,解压应该是完整的,不会有未处理的数据。然而,如果数据不是一次性全部获得的时候,只作部分解压的时候就会有未处理数据。 参考: `zlib.decompress()`, `zlib.decompressobj.decompress()` + zlib.decompressobj.decompress(s) 添加解压缩数据。返回解压出的数据,未处理的保留在`zlib.decompressobj.unused_data`。 + zlib.decompressobj.flush() 返回全部解压数据。如果解压对象不再使用,您应该`del`它。 [编辑] 异常: + zlib.error 压缩或解压时出现的错误。 参考: [gzip], [zipfile] + 后一页 取自"http://sunsol.wiki-site.com/index.php/Tpip_224" 查看 * 文章 * 讨论 * 编辑 * 历史 个人工具 * 登录/创建账户 导航 * 首页 * 最近更改 * 帮助 * 资助 搜索 ____________________ 进入 搜索 工具箱 * 链入页面 * 链出更改 * 上传文件 * 特殊页面 * 可打印版 * 永久链接 Powered by MediaWiki * 这页的最后修订在 2009年1月15日 (星期四) 13:05。 * 本页面已经被浏览189次。 * 隐私政策 * 关于Sunsol * 免责声明 sl דומיין בעברית דומיין דומין תוכנה לניהול קשרי לקוחות CRM, ניהול קשרי לקוחות דומין בעברית פורומים ספרדית גיבוי 跳转到主要内容 IBM® * 中国 * [ 选择 ] Search in: [dW 全部内容.....] 搜索: ____________________ 搜索 * 首页 * 业务解决方案 * IT 服务 * 产品 * 支持与下载 * 个性化服务 * developerWorks 中国 * Linux * 文档库 可爱的 Python: 使用 SimpleParse 模块进行解析 一种简明易读的 EBNF 样式的封装器 David Mertz,博士 (mertz@gnosis.cx), 分析员, Gnosis Software,Inc. David Mertz 喜欢以尼采的风格写作,其作品就象古代哲学家的冥想,但其中的谬误也会自己暴露出来。但也许他的(正在这里免费宣传)即将完成的书籍: Text Processing in Python,某天将被误认为是哲学的控制论变体。可以通过 mertz@gnosis.cx和 David 联系;在 http://gnosis.cx/publish/上了解他的生活。欢迎提出关于本栏过去、现在和将来的意见和建议。 简介: 为 Python 编写的解析工具很多。本专栏讨论了一种构建在 Python 之上的高级解析语言。 SimpleParse 在 mxTextTools 之上提供了一种 EBNF 样式的句法,从而很清晰地阐明了语法的表达式。 标记本文! 发布日期: 2002 年 1 月 01 日 级别: 初级 访问情况 522 次浏览 建议: 与大多数程序员一样,我经常需要标识存在于文本文档中的部件和结构,这些文档包括:日志文件、配置文件、分隔的数据以及格式更自由的(但还是半结构化的)报表格式。所有这些文档都拥有它们自己的“小语言”,用于规定什么能够出现在文档内。 我编写处理这些非正式解析任务的程序的方法总是有点象大杂烩,其中包括定制状态机、正则表达式以及上下文驱动的字符串测试。这些程序中的模式大概总是这样:“读一些文本,弄清是否可以用它来做些什么,然后可能再多读一些文本,一直尝试下去。” 各种形式的解析器将文档中部件和结构的描述提炼成简明、清晰和 说明性的规则,该规则规定了如何标识文档的组成部分。这里,说明性方面是最引人注目的。我所有的旧的特别的解析器都采用了这种风格:读一些字符、作决定、累加一些变量、清空、重复。正如本专栏关于函数型编程的部分文章中所评述的,程序流的方法风格相对来说容易出错并且难以维护。 正式解析器几乎总是使用扩展巴科斯范式(Extended Backus-Naur Form(EBNF))上的变体来描述它们所描述语言的“语法”。我们在这里研究的工具是这样做的,流行的编译器开发工具 YACC(及其变体)也是这样做的。基本上,EBNF 语法对您可能在文档中找到的 部件赋予名称;另外,经常将较小的部件组成较大的部件。由运算符 ― 通常和您在正则表达式中看到的符号相同 ― 来指定小部件在较大的部件中出现的频率和顺序。在解析器交谈(parser-talk)中,语法中每个命名的部件称为一个“产品(production)”。 可能读者甚至还不知道 EBNF,却已经看到过运行的 EBNF 描述了。例如,大家熟悉的 Python 语言参考大全(Python Language Reference)定义了浮点数在 Python 中是什么样子: EBNF 样式的浮点数描述 floatnumber: pointfloat | exponentfloat pointfloat: [intpart] fraction | intpart "." exponentfloat: (nonzerodigit digit* | pointfloat) exponent intpart: nonzerodigit digit* | "0" fraction: "." digit+ exponent: ("e"|"E") ["+"|"-"] digit+ 或者您可能见过以 EBNF 样式定义的 XML DTD 元素。例如,developerWorks 教程的 类似于: developerWorks DTD 中 EBNF 样式的描述 拼写稍有不同,但是量化、交替和定序这些一般概念都存在于所有 EBNF 样式的语言语法中。 _________________________________________________________________ 回页首 使用 SimpleParse 构建标记列表 SimpleParse 是一个有趣的工具。要使用这个模块,您需要底层模块 mxTextTools ,它用 C 实现了一个“标记引擎”。 mxTextTools (请参阅本文后面的 参考资料)的功能强大,但是相当难用。一旦在 mxTextTools 上放置了 SimpleParse 后,工作就简单多了。 使用 SimpleParse 确实很简单,因为不需要考虑 mxTextTools 的大部分复杂性。首先,应该创建一种 EBNF 样式的语法,用来描述要处理的语言。第二步是调用 mxTextTools 来创建一个 标记列表,当语法应用于文档时,该列表描述所有成功的产品。最后,使用 mxTextTools 返回的标记列表来进行实际操作。 对于本文,我们要解析的“语言”是“智能 ASCII”所使用的一组标记代码,这些代码用来表示诸如黑体、模块名以及书籍标题之类的内容。这就是先前使用 mxTextTools 来标识的同一种语言,在先前的部分中,使用正则表达式和状态机。该语言比完整的编程语言简单得多,但已经足够复杂而有代表性。 这里,我们可能需要回顾一下。 mxTextTools 提供给我们的“标记列表”是什么东西?这基本上是一个嵌套结构,它只是给出了每个产品在源文本中匹配的字符偏移量。 mxTextTools 快速遍历源文本,但是它不对源文本本身 做任何操作(至少当使用 SimpleParse 语法时不进行任何操作)。让我们研究一个简化的标记列表: 从 SimpleParse 语法生成的标记列表 (1, [('plain', 0, 15, [('word', 0, 4, [('alphanums', 0, 4, [])]), ('whitespace', 4, 5, []), ('word', 5, 10, [('alphanums', 5, 10, [])]), ('whitespace', 10, 11, []), ('word', 11, 14, [('alphanums', 11, 14, [])]), ('whitespace', 14, 15, [])]), ('markup', 15, 27, ... 289) 中间的省略号表示了一批更多的匹配。但是我们看到的部分叙述了下列内容。根产品(“para”)取得成功并结束于偏移量 289 处(源文本的长度)。子产品“plain”的偏移量为 0 到 15。“plain”子产品本身由更小的产品组成。在“plain”产品之后,“markup”产品的偏移量为 15 到 27。这里省略了详细信息,但是第一个“markup”由组件组成,并且源文本中稍后还有另外的产品取得成功。 _________________________________________________________________ 回页首 “智能 ASCII”的 EBNF 样式的语法 我们已经浏览了 SimpleParse + mxTextTools 所能提供的标记列表。但是我们确实需要研究用来生成这个标记列表的语法。实际工作在语法中发生。EBNF 语法读起来几乎不需加以说明(尽管 确实需要一点思考和测试来设计一个语法): typographify.def para := (plain / markup)+ plain := (word / whitespace / punctuation)+ whitespace := [ \t\r\n]+ alphanums := [a-zA-Z0-9]+ word := alphanums, (wordpunct, alphanums)*, contraction? wordpunct := [-_] contraction := "'", ('am'/'clock'/'d'/'ll'/'m'/'re'/'s'/'t'/'ve') markup := emph / strong / module / code / title emph := '-', plain, '-' strong := '*', plain, '*' module := '[', plain, ']' code := "'", plain, "'" title := '_', plain, '_' punctuation := (safepunct / mdash) mdash := '--' safepunct := [!@#$%^&()+=|\{}:;<>,.?/"] 这种语法和您口头描述“智能 ASCII”的方式几乎完全相同,非常清晰。段落由一些纯文本和一些标记文本组成。纯文本由某些字、空白和标点符号的集合组成。标记文本可能是强调文本、着重强调文本或模块名等等。着重强调文本由星号环绕。标记文本就是由诸如此类的部分组成的。需要考虑的是几个特性,类似于到底什么是“字”,或者可以用什么符号结束缩写,但是 EBNF 的句法不会成为障碍。 相比之下,使用正则表达式可以更精练地描述同类规则。“智能 ASCII”标记程序的第一个版本就是这样做的。但是编写这种精练难度大得多,并且以后调整也更为困难。下列代码表示了很大程度上(但不精确地)相同的规则集: 智能 ASCII 的 Python regexs # [module] names re_mods = r""'([\(\s'/">]|^)\[(.*?)\]([<\s\.\),:;'"?!/-])""" # *strongly emphasize* words re_strong = r""'([\(\s'/"]|^)\*(.*?)\*([\s\.\),:;'"?!/-])""" # -emphasize- words re_emph = r""'([\(\s'/"]|^)-(.*?)-([\s\.\),:;'"?!/])""" # _Book Title_ citations re_title = r""'([\(\s'/"]|^)_(.*?)_([\s\.\),:;'"?!/-])""" # 'Function()" names re_funcs = r""'([\(\s/"]|^)'(.*?)'([\s\.\),:;"?!/-])""" 如果您发现或发明了该语言的某种经过微小更新的变体,将它和 EBNF 语法一起使用要比和那些正则表达式一起使用简单得多。此外,通常使用 mxTextTools 执行模式操作甚至更快些。 _________________________________________________________________ 回页首 生成和使用标记列表 对于样本程序,我们将实际语法放置在一个单独的文件中。对于大多数用途而言,这种组织比较好,便于使用。通常,更改语法和更改应用程序逻辑是不同种类的任务;这些文件反映了这一点。但是我们对语法所做的全部处理就是将它作为一个字符串传递给 SimpleParse 函数,因此我们大体上可以将它包括到主应用程序中(或者甚至以某种方式动态生成它)。 让我们研究完整的(简化)标记应用程序: typographify.py import os from sys import stdin, stdout, stderr from simpleparse import generator from mx.TextTools import TextTools input = stdin.read() decl = open( 'typographify.def' ).read() from typo_html import codes parser = generator.buildParser(decl).parserbyname( 'para' ) taglist = TextTools.tag(input, parser) for tag, beg, end, parts in taglist[1]: if tag == 'plain' : stdout.write(input[beg:end]) elif tag == 'markup' : markup = parts[0] mtag, mbeg, mend = markup[:3] start, stop = codes.get(mtag, ( '' , '' )) stdout.write(start + input[mbeg+1:mend-1] + stop) stderr.write( 'parsed %s chars of %s\n' % (taglist[-1], len(input))) 这就是它所做的。首先读入语法,然后根据语法创建一个 mxTextTools 解析器。接下来,我们将标记表/解析器应用于输入源来创建一个标记列表。最后,我们循环遍历标记列表,并且发出一些新的标记文本。当然,该循环可以对遇到的每个产品做我们所期望的任何其它事情。 由于智能 ASCII 所使用的特殊语法,源文本中的任何内容都可归类于“plain”产品或“markup”产品。因此,对于循环遍历标记列表中的单个级别,它已经足够了(除非我们正好寻找比特定标记产品级别低一级的级别,譬如“title”)。但是格式更自由的语法 ― 譬如出现在大多数编程语言中的语法 ― 可以轻松地在标记列表中向下递归,并在每个级别上寻找产品名称。例如,如果一种语法中允许嵌套标记代码,或许可以使用这种递归风格。您可能会喜欢弄清如何调整语法的练习(提示:请记住允许各产品彼此递归)。 转至输出的特殊标记代码还是存储到另一个文件中了,这是由于组织的原因而非本质原因。在这里我们使用了一个技巧,就是用一个字典作为一个 switch 语句(尽管示例中的 otherwise 情况还是太狭窄了)。这个想法就是:将来我们可能希望创建多种“输出格式”的文件,比如说 HTML、DocBook、LaTeX 或者其它格式。用于示例的特殊标记文件类似于: typo_html.py codes = \ { 'emph' : ( '' , '' ), 'strong' : ( '' , '' ), 'module' : ( '' , '' ), 'code' : ( '' , '' ), 'title' : ( '' , '' ), } 把这种格式扩展到其它输出格式很简单。 _________________________________________________________________ 回页首 结束语 SimpleParse 为含义模糊的 mxTextTools C 模块的基本功能和速度提供了一种简明的并且十分易读的 EBNF 样式的封装器。此外,即使只是顺便学会的,许多程序员也已经相当熟悉 EBNF 语法了。关于什么更容易理解,我不能提供 证明 ― 这一点因各人的直觉而异 ― 但是我可以根据源代码长度给出量化评估。先前手工开发的 mxTypographify 模块的大小如下: wc mxTypographify.py 199 776 7041 mxTypographify.py 这 199 行中,相当数量的行是注释。这些行中有 18 行是标记函数所包含的正则表达式版本,包含该标记函数是用于计时比较。但是该程序的功能基本上和上面列出的 typographify.py 的功能相同。相比之下,我们的 SimpleParse 程序,包括其支持文件在内,大小如下: wc typo*.def typo*.py 19 79 645 typographify.def 20 79 721 typographify.py 6 25 205 typo_html.py 45 183 1571 total 换句话说,行数大约只有前者的四分之一。这个版本的注释较少,但是那主要是因为 EBNF 语法的自我描述能力很强。我不希望太过强调代码行数 ― 显然,您可以通过最小化或最大化代码长度做手脚。但是通常对程序员的工作进行研究,少数实际经验结论之一是:“千行代码/人月”相当接近于常数,和语言以及库关系不大。当然,依次地,正则表达式版本是 SimpleParse 版本长度的三分之一 ― 但是我认为其表达式的密度使得它极难维护并且更难编写。总而言之,我认为 SimpleParse 是所考虑的方法中最好的。 参考资料 * 您可以参阅本文在 developerWorks 全球站点上的 英文原文. * 请阅读 developerWorks上 David 的上一篇可爱的 Python 专栏文章: 可爱的 Python:使用 Python 进行文本处理,概述了 Python 的文本处理工具。 * mxTextTools 现在是更大的 eGenix 扩展包的一部分。要获得更多信息,请阅读 mxTextTools - Fast Text Manipulation Tools for Python。 * 引用模块 mxTypographify 是直接使用 mxTextTools 构建的。 SimpleParse 版本变得更容易阅读: http://gnosis.cx/download/mxTypographify.py * 请访问 John Aycock 的 Spark 模块主页 。 Spark 是一个在很多方面比 SimpleParse 更成熟的解析框架。许多 Python 开发人员推荐 Spark ,它具有一个额外的优势 ― 它是纯 Python(因此在速度方面具有天生的劣势)。 * 请访问 ISO 14977 standard for EBNF syntax以获得更多信息。 * 请浏览 developerWorks上 更多 Linux 参考资料。 * 请浏览 developerWorks上 更多开放源码参考资料。 关于作者 David Mertz 喜欢以尼采的风格写作,其作品就象古代哲学家的冥想,但其中的谬误也会自己暴露出来。但也许他的(正在这里免费宣传)即将完成的书籍: Text Processing in Python,某天将被误认为是哲学的控制论变体。可以通过 mertz@gnosis.cx和 David 联系;在 http://gnosis.cx/publish/上了解他的生活。欢迎提出关于本栏过去、现在和将来的意见和建议。 建议 _________________________________________________________________ _________________________________________________________________ 回页首 商标 | My developerWorks 使用条款与条件 static.content.url=http://www.ibm.com/developerworks/js/artrating/ SITE_ID=10 Zone=Linux ArticleID=21798 ArticleTitle=可爱的 Python: 使用 SimpleParse 模块进行解析 publish-date=01012002 author1-email=mertz@gnosis.cx author1-email-cc=mertz@gnosis.cx 内容 * 使用 SimpleParse 构建标记列表 * “智能 ASCII”的 EBNF 样式的语法 * 生成和使用标记列表 * 结束语 * 参考资料 * 关于作者 * 建议 标签 Help 使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。 使用 滑动条 调节标签的数量。 热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。 我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。 使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。 搜索所有标签 _________________ Search _________________________________________________________________ 热门文章标签 | 我的文章标签跳转到标签列表 热门文章标签 | 我的文章标签 跳转到标签列表 * 关于IBM * 隐私条约 * 联系IBM * 使用条款 _________________________ Search 你的位置: Home ‣ Dive Into Python 3 ‣ 难度等级: ♦♦♦♦♦ 案例研究:将chardet移植到Python 3 ❝ Words, words. They’re all we have to go on. ❞ — Rosencrantz and Guildenstern are Dead 概述 未知的或者不正确的字符编码是因特网上无效数据(gibberish text)的头号起因。在第3章,我们讨论过字符编码的历史,还有Unicode的产生,“一个能处理所有情况的大块头。”如果在网络上不再存在乱码这回事,我会爱上她的…因为所有的编辑系统(authoring system)保存有精确的编码信息,所有的传输协议都支持Unicode,所有处理文本的系统在执行编码间转换的时候都可以保持高度精确。 我也会喜欢pony。 Unicode pony。 Unipony也行。 这一章我会处理编码的自动检测。 ⁂ 什么是字符编码自动检测? 它是指当面对一串不知道编码信息的字节流的时候,尝试着确定一种编码方式以使我们能够读懂其中的文本内容。它就像我们没有解密钥匙的时候,尝试破解出编码。 那不是不可能的吗? 通常来说,是的,不可能。但是,有一些编码方式为特定的语言做了优化,而语言并非随机存在的。有一些字符序列在某种语言中总是会出现,而其他一些序列对该语言来说则毫无意义。一个熟练掌握英语的人翻开报纸,然后发现“txzqJv 2!dasd0a QqdKjvz”这样一些序列,他会马上意识到这不是英语(即使它完全由英语中的字母组成)。通过研究许多具有“代表性(typical)”的文本,计算机算法可以模拟人的这种对语言的感知,并且对一段文本的语言做出启发性的猜测。 换句话说就是,检测编码信息就是检测语言的类型,并辅之一些额外信息,比如每种语言通常会使用哪些编码方式。 这样的算法存在吗? 结果证明,是的,它存在。所有主流的浏览器都有字符编码自动检测的功能,因为因特网上总是充斥着大量缺乏编码信息的页面。Mozilla Firefox包含有一个自动检测字符编码的库,它是开源的。我将它导入到了Python 2,并且取绰号为chardet模块。这一章中,我会带领你一步一步地将chardet模块从Python 2移植到Python 3。 ⁂ 介绍chardet模块 在开始代码移植之前,如果我们能理解代码是如何工作的这将非常有帮助!以下是一个简明地关于chardet模块代码结构的手册。chardet库太大,不可能都放在这儿,但是你可以从chardet.feedparser.org下载它。 编码检测就是语言检测。 universaldetector.py是检测算法的主入口点,它包含一个类,即UniversalDetector。(可能你会认为入口点是chardet/__init__.py中的detect函数,但是它只是一个便捷的包装方法,它会创建UniversalDetector对象,调用对象的方法,然后返回其结果。) UniversalDetector共处理5类编码方式: 1. 包含字节顺序标记(BOM)的UTF-n。它包括UTF-8,大尾端和小尾端的UTF-16,还有所有4字节顺序的UTF-32的变体。 2. 转义编码,它们与7字节的ASCII编码兼容,非ASCII编码的字符会以一个转义序列打头。比如:ISO-2022-JP(日文)和HZ-GB-2312(中文). 3. 多字节编码,在这种编码方式中,每个字符使用可变长度的字节表示。比如:Big5(中文),SHIFT_JIS(日文),EUC-KR(韩文)和缺少BOM标记的UTF-8。 4. 单字节编码,这种编码方式中,每个字符使用一个字节编码。例如:KOI8-R(俄语),windows-1255(希伯来语)和TIS-620(泰国语)。 5. windows-1252,它主要被根本不知道字符编码的中层管理人员(middle manager)在Microsoft Windows上使用。 有BOM标记的UTF-n 如果文本以BOM标记打头,我们可以合理地假设它使用了UTF-8,UTF-16或者UTF-32编码。(BOM会告诉我们是其中哪一种,这就是它的功能。)这个过程在UniversalDetector中完成,并且不需要深入处理,会非常快地返回其结果。 转义编码 如果文本包含有可识别的能指示出某种转义编码的转义序列,UniversalDetector会创建一个EscCharSetProber对象(在escprober.py中定义),然后以该文本调用它。 EscCharSetProber会根据HZ-GB-2312,ISO-2022-CN,ISO-2022-JP,和ISO-2022-KR(在escsm.py中定义)来创建一系列的状态机(state machine)。EscCharSetProber将文本一次一个字节地输入到这些状态机中。如果某一个状态机最终唯一地确定了字符编码,EscCharSetProber迅速地将该有效结果返回给UniversalDetector,然后UniversalDetector将其返回给调用者。如果某一状态机进入了非法序列,它会被放弃,然后使用其他的状态机继续处理。 多字节编码 假设没有BOM标记,UniversalDetector会检测该文本是否包含任何高位字符(high-bit character)。如果有的话,它会创建一系列的“探测器(probers)”,检测这段广西是否使用多字节编码,单字节编码,或者作为最后的手段,是否为windows-1252编码。 这里的多字节编码探测器,即MBCSGroupProber(在mbcsgroupprober.py中定义),实际上是一个管理一组其他探测器的shell,它用来处理每种多字节编码:Big5,GB2312,EUC-TW,EUC-KR,EUC-JP,SHIFT_JIS和UTF-8。MBCSGroupProber将文本作为每一个特定编码探测器的输入,并且检测其结果。如果某个探测器报告说它发现了一个非法的字节序列,那么该探测器则会被放弃,不再进一步处理(因此,换句话说就是,任何对UniversalDetector.feed()的子调用都会忽略那个探测器)。如果某一探测器报告说它有足够理由确信找到了正确的字符编码,那么MBCSGroupProber会将这个好消息传递给UniversalDetector,然后UniversalDetector将结果返回给调用者。 大多数的多字节编码探测器从类MultiByteCharSetProber(定义在mbcharsetprober.py中)继承而来,简单地挂上合适的状态机和分布分析器(distribution analyzer),然后让MultiByteCharSetProber做剩余的工作。MultiByteCharSetProber将文本作为特定编码状态机的输入,每次一个字节,寻找能够指示出一个确定的正面或者负面结果的字节序列。同时,MultiByteCharSetProber会将文本作为特定编码分布分析机的输入。 分布分析机(在chardistribution.py中定义)使用特定语言的模型,此模型中的字符在该语言被使用得最频繁。一旦MultiByteCharSetProber把足够的文本给了分布分析机,它会根据其中频繁使用字符的数目,字符的总数和特定语言的分配比(distribution ratio),来计算置信度(confidence rating)。如果置信度足够高,MultiByteCharSetProber会将结果返回给MBCSGroupProber,然后由MBCSGroupProber返回给UniversalDetector,最后UniversalDetector将其返回给调用者。 对于日语来说检测会更加困难。单字符的分布分析并不总能区别出EUC-JP和SHIFT_JIS,所以SJISProber(在sjisprober.py中定义)也使用双字符的分布分析。SJISContextAnalysis和EUCJPContextAnalysis(都定义在jpcntx.py中,并且都从类JapaneseContextAnalysis中继承)检测文本中的平假名音节字符(Hiragana syllabary characher)的出现次数。一旦处理了足够量的文本,它会返回一个置信度给SJISProber,SJISProber检查两个分析器的结果,然后将置信度高的那个返回给MBCSGroupProber。 单字节编码 说正经的,我的Unicode pony哪儿去了? 单字节编码的探测器,即SBCSGroupProber(定义在sbcsgroupprober.py中),也是一个管理一组其他探测器的shell,它会尝试单字节编码和语言的每种组合:windows-1251,KOI8-R,ISO-8859-5,MacCyrillic,IBM855,and IBM866(俄语);ISO-8859-7和windows-1253(希腊语);ISO-8859-5和windows-1251(保加利亚语);ISO-8859-2和windows-1250(匈牙利语);TIS-620(泰国语);windows-1255和ISO-8859-8(希伯来语)。 SBCSGroupProber将文本输入给这些特定编码+语言的探测器,然后检测它们的返回值。这些探测器的实现为某一个类,即SingleByteCharSetProber(在sbcharsetprober.py中定义),它使用语言模型(language model)作为其参数。语言模型定义了典型文本中不同双字符序列出现的频度。SingleByteCharSetProber处理文本,统计出使用得最频繁的双字符序列。一旦处理了足够多的文本,它会根据频繁使用的序列的数目,字符总数和特定语言的分布系数来计算其置信度。 希伯来语被作为一种特殊的情况处理。如果在双字符分布分析中,文本被认定为是希伯来语,HebrewProber(在hebrewprober.py中定义)会尝试将其从Visual Hebrew(源文本一行一行地被“反向”存储,然后一字不差地显示出来,这样就能从右到左的阅读)和Logical Hebrew(源文本以阅读的顺序保存,在客户端从右到左进行渲染)区别开来。因为有一些字符在两种希伯来语中会以不同的方式编码,这依赖于它们是出现在单词的中间或者末尾,这样我们可以合理的猜测源文本的存储方向,然后返回合适的编码方式(windows-1255对应Logical Hebrew,或者ISO-8859-8对应Visual Hebrew)。 windows-1252 如果UniversalDetector在文本中检测到一个高位字符,但是其他的多字节编码探测器或者单字节编码探测器都没有返回一个足够可靠的结果,它就会创建一个Latin1Prober对象(在latin1prober.py中定义),尝试从中检测以windows-1252方式编码的英文文本。这种检测存在其固有的不可靠性,因为在不同的编码中,英文字符通常使用了相同的编码方式。唯一一种区别能出windows-1252的方法是通过检测常用的符号,比如弯引号(smart quotes),撇号(curly apostrophes),版权符号(copyright symbol)等这一类的符号。如果可能Latin1Prober会自动降低其置信度以使其他更精确的探测器检出结果。 ⁂ 运行2to3 我们将要开始移植chardet模块到Python 3了。Python 3自带了一个叫做2to3的实用脚本,它使用Python 2的源代码作为输入,然后尽其可能地将其转换到Python 3的规范。某些情况下这很简单 — 一个被重命名或者被移动到其他模块中的函数 — 但是有些情况下,这个过程会变得非常复杂。想要了解所有它能做的事情,请参考附录,使用2to3将代码移植到Python 3。接下来,我们会首先运行一次2to3,将它作用在chardet模块上,但是就如你即将看到的,在该自动化工具完成它的魔法表演后,仍然存在许多工作需要我们来收拾。 chardet包被分割为一些不同的文件,它们都放在同一个目录下。2to3能够立即处理多个文件:只需要将目录名作为命令行参数传递给2to3,然后它会轮流处理每个文件。 C:\home\chardet> python c:\Python30\Tools\Scripts\2to3.py -w chardet\ RefactoringTool: Skipping implicit fixer: buffer RefactoringTool: Skipping implicit fixer: idioms RefactoringTool: Skipping implicit fixer: set_literal RefactoringTool: Skipping implicit fixer: ws_comma --- chardet\__init__.py (original) +++ chardet\__init__.py (refactored) @@ -18,7 +18,7 @@ __version__ = "1.0.1" def detect(aBuf): [DEL: - import universaldetector :DEL] [INS: + from . import universaldetector :INS] u = universaldetector.UniversalDetector() u.reset() u.feed(aBuf) --- chardet\big5prober.py (original) +++ chardet\big5prober.py (refactored) @@ -25,10 +25,10 @@ # 02110-1301 USA ######################### END LICENSE BLOCK ######################### [DEL: -from mbcharsetprober import MultiByteCharSetProber :DEL] [DEL: -from codingstatemachine import CodingStateMachine :DEL] [DEL: -from chardistribution import Big5DistributionAnalysis :DEL] [DEL: -from mbcssm import Big5SMModel :DEL] [INS: +from .mbcharsetprober import MultiByteCharSetProber :INS] [INS: +from .codingstatemachine import CodingStateMachine :INS] [INS: +from .chardistribution import Big5DistributionAnalysis :INS] [INS: +from .mbcssm import Big5SMModel :INS] class Big5Prober(MultiByteCharSetProber): def __init__(self): --- chardet\chardistribution.py (original) +++ chardet\chardistribution.py (refactored) @@ -25,12 +25,12 @@ # 02110-1301 USA ######################### END LICENSE BLOCK ######################### [DEL: -import constants :DEL] [DEL: -from euctwfreq import EUCTWCharToFreqOrder, EUCTW_TABLE_SIZE, EUCTW_TYPICAL_DISTRIBUTION_RATIO :DEL] [DEL: -from euckrfreq import EUCKRCharToFreqOrder, EUCKR_TABLE_SIZE, EUCKR_TYPICAL_DISTRIBUTION_RATIO :DEL] [DEL: -from gb2312freq import GB2312CharToFreqOrder, GB2312_TABLE_SIZE, GB2312_TYPICAL_DISTRIBUTION_RATIO :DEL] [DEL: -from big5freq import Big5CharToFreqOrder, BIG5_TABLE_SIZE, BIG5_TYPICAL_DISTRIBUTION_RATIO :DEL] [DEL: -from jisfreq import JISCharToFreqOrder, JIS_TABLE_SIZE, JIS_TYPICAL_DISTRIBUTION_RATIO :DEL] [INS: +from . import constants :INS] [INS: +from .euctwfreq import EUCTWCharToFreqOrder, EUCTW_TABLE_SIZE, EUCTW_TYPICAL_DISTRIBUTION_RATIO :INS] [INS: +from .euckrfreq import EUCKRCharToFreqOrder, EUCKR_TABLE_SIZE, EUCKR_TYPICAL_DISTRIBUTION_RATIO :INS] [INS: +from .gb2312freq import GB2312CharToFreqOrder, GB2312_TABLE_SIZE, GB2312_TYPICAL_DISTRIBUTION_RATIO :INS] [INS: +from .big5freq import Big5CharToFreqOrder, BIG5_TABLE_SIZE, BIG5_TYPICAL_DISTRIBUTION_RATIO :INS] [INS: +from .jisfreq import JISCharToFreqOrder, JIS_TABLE_SIZE, JIS_TYPICAL_DISTRIBUTION_RATIO :INS] ENOUGH_DATA_THRESHOLD = 1024 SURE_YES = 0.99 . . . (it goes on like this for a while) . . RefactoringTool: Files that were modified: RefactoringTool: chardet\__init__.py RefactoringTool: chardet\big5prober.py RefactoringTool: chardet\chardistribution.py RefactoringTool: chardet\charsetgroupprober.py RefactoringTool: chardet\codingstatemachine.py RefactoringTool: chardet\constants.py RefactoringTool: chardet\escprober.py RefactoringTool: chardet\escsm.py RefactoringTool: chardet\eucjpprober.py RefactoringTool: chardet\euckrprober.py RefactoringTool: chardet\euctwprober.py RefactoringTool: chardet\gb2312prober.py RefactoringTool: chardet\hebrewprober.py RefactoringTool: chardet\jpcntx.py RefactoringTool: chardet\langbulgarianmodel.py RefactoringTool: chardet\langcyrillicmodel.py RefactoringTool: chardet\langgreekmodel.py RefactoringTool: chardet\langhebrewmodel.py RefactoringTool: chardet\langhungarianmodel.py RefactoringTool: chardet\langthaimodel.py RefactoringTool: chardet\latin1prober.py RefactoringTool: chardet\mbcharsetprober.py RefactoringTool: chardet\mbcsgroupprober.py RefactoringTool: chardet\mbcssm.py RefactoringTool: chardet\sbcharsetprober.py RefactoringTool: chardet\sbcsgroupprober.py RefactoringTool: chardet\sjisprober.py RefactoringTool: chardet\universaldetector.py RefactoringTool: chardet\utf8prober.py 现在我们对测试工具 — test.py — 应用2to3脚本。 C:\home\chardet> python c:\Python30\Tools\Scripts\2to3.py -w test.py RefactoringTool: Skipping implicit fixer: buffer RefactoringTool: Skipping implicit fixer: idioms RefactoringTool: Skipping implicit fixer: set_literal RefactoringTool: Skipping implicit fixer: ws_comma --- test.py (original) +++ test.py (refactored) @@ -4,7 +4,7 @@ count = 0 u = UniversalDetector() for f in glob.glob(sys.argv[1]): [DEL: - print f.ljust(60), :DEL] [INS: + print(f.ljust(60), end=' ') :INS] u.reset() for line in file(f, 'rb'): u.feed(line) @@ -12,8 +12,8 @@ u.close() result = u.result if result['encoding']: [DEL: - print result['encoding'], 'with confidence', result['confidence'] :DEL] [INS: + print(result['encoding'], 'with confidence', result['confidence']) :INS] else: [DEL: - print '******** no result' :DEL] [INS: + print('******** no result') :INS] count += 1 [DEL: -print count, 'tests' :DEL] [INS: +print(count, 'tests') :INS] RefactoringTool: Files that were modified: RefactoringTool: test.py 看吧,还不算太难。只是转换了一些impor和print语句。说到这儿,那些import语句原来到底存在什么问题呢?为了回答这个问题,你需要知道chardet是如果被分割到多个文件的。 ⁂ 题外话,关于多文件模块 chardet是一个多文件模块。我也可以将所有的代码都放在一个文件里(并命名为chardet.py),但是我没有。我创建了一个目录(叫做chardet),然后我在那个目录里创建了一个__init__.py文件。如果Python看到目录里有一个__init__.py文件,它会假设该目录里的所有文件都是同一个模块的某部分。模块名为目录的名字。目录中的文件可以引用目录中的其他文件,甚至子目录中的也行。(再讲一分钟这个。)但是整个文件集合被作为一个单独的模块呈现给其他的Python代码 — 就好像所有的函数和类都在一个.py文件里。 在__init__.py中到底有些什么?什么也没有。一切。界于两者之间。__init__.py文件不需要定义任何东西;它确实可以是一个空文件。或者也可以使用它来定义我们的主入口函数。或者把我们所有的函数都放进去。或者其他函数都放,单单不放某一个函数… ☞包含有__init__.py文件的目录总是被看作一个多文件的模块。没有__init__.py文件的目录中,那些.py文件是不相关的。 我们来看看它实际上是怎样工作的。 >>> import chardet >>> dir(chardet) ① ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', 'detect'] >>> chardet ② 1. 除了常见的类属性,在chardet模块中只多了一个detect()函数。 2. 这是我们发觉chardet模块不只是一个文件的第一个线索:“module”被当作文件chardet/目录中的__init__.py文件列出来。 我们再来瞟一眼__init__.py文件。 def detect(aBuf): ① from . import universaldetector ② u = universaldetector.UniversalDetector() u.reset() u.feed(aBuf) u.close() return u.result 1. __init__.py文件定义了detect()函数,它是chardet库的主入口点。 2. 但是detect()函数没有任何实际的代码!事实上,它所做的事情只是导入了universaldetector模块然后开始调用它。但是universaldetector定义在哪儿? 答案就在那行古怪的import语句中: from . import universaldetector 翻译成中文就是,“导入universaldetector模块;它跟我在同一目录,”这里的我即指文件chardet/__init__.py。这是一种提供给多文件模块中文件之间互相引用的方法,不需要担心它会与已经安装的搜索路径中的模块发生命名冲突。该条import语句只会在chardet/目录中查找universaldetector模块。 这两条概念 — __init__.py和相对导入 — 意味着我们可以将模块分割为任意多个块。chardet模块由36个.py文件组成 — 36!但我们所需要做的只是使用chardet/__init__.py文件中定义的某个函数。还有一件事情没有告诉你,detect()使用了相对导入来引用了chardet/universaldetector.py中定义的一个类,然后这个类又使用了相对导入引用了其他5个文件的内容,它们都在chardet/目录中。 ☞如果你发现自己正在用Python写一个大型的库(或者更可能的情况是,当你意识到你的小模块已经变得很大的时候),最好花一些时间将它重构为一个多文件模块。这是Python所擅长的许多事情之一,那就利用一下这个优势吧。 ⁂ 修复2to3脚本所不能做的 False is invalid syntax 你确实有测试样例,对吧? 现在开始真正的测试:使用测试集运行测试工具。由于测试集被设计成可以覆盖所有可能的代码路径,它是用来测试移植后的代码,保证bug不会埋伏在某个地方的一种不错的办法。 C:\home\chardet> python test.py tests\*\* Traceback (most recent call last): File "test.py", line 1, in from chardet.universaldetector import UniversalDetector File "C:\home\chardet\chardet\universaldetector.py", line 51 self.done = constants.False ^ SyntaxError: invalid syntax 唔,一个小麻烦。在Python 3中,False是一个保留字,所以不能把它用作变量名。我们来看一看constants.py来确定这是在哪儿定义的。以下是constants.py在执行2to3脚本之前原来的版本。 import __builtin__ if not hasattr(__builtin__, 'False'): False = 0 True = 1 else: False = __builtin__.False True = __builtin__.True 这一段代码用来允许库在低版本的Python 2中运行,在Python 2.3以前,Python没有内置的bool类型。这段代码检测内置的True和False常量是否缺失,如果必要的话则定义它们。 但是,Python 3总是有bool类型的,所以整个这片代码都没有必要。最简单的方法是将所有的constants.True和constants.False都分别替换成True和False,然后将这段死代码从constants.py中移除。 所以universaldetector.py中的以下行: self.done = constants.False 变成了 self.done = False 啊哈,是不是很有满足感?代码不仅更短了,而且更具可读性。 No module named constants 是时候再运行一次test.py了,看看它能走多远。 C:\home\chardet> python test.py tests\*\* Traceback (most recent call last): File "test.py", line 1, in from chardet.universaldetector import UniversalDetector File "C:\home\chardet\chardet\universaldetector.py", line 29, in import constants, sys ImportError: No module named constants 说什么了?不存在叫做constants的模块?可是当然有constants这个模块了。它就在chardet/constants.py中。 还记得什么时候2to3脚本会修复所有那些导入语句吗?这个包内有许多的相对导入 — 即,在同一个库中,导入其他模块的模块 — 但是在Python 3中相对导入的逻辑已经变了。在Python 2中,我们只需要import constants,然后它就会首先在chardet/目录中查找。在Python 3中,所有的导入语句默认使用绝对路径。如果想要在Python 3中使用相对导入,你需要显式地说明: from . import constants 但是。2to3脚本难道不是要自动修复这些的吗?好吧,它确实这样做了,但是该条导入语句在同一行组合了两种不同的导入类型:库内部对constants的相对导入,还有就是对sys模块的绝对导入,sys模块已经预装在了Python的标准库里。在Python 2里,我们可以将其组合到一条导入语句中。在Python 3中,我们不能这样做,并且2to3脚本也不是那样聪明,它不能把这条导入语句分成两条。 解决的办法是把这条导入语句手动的分成两条。所以这条二合一的导入语句: import constants, sys 需要变成两条分享的导入语句: from . import constants import sys 在chardet库中还分散着许多这类问题的变体。某些地方它是“import constants, sys”;其他一些地方则是“import constants, re”。修改的方法是一样的:手工地将其分割为两条语句,一条为相对导入准备,另一条用于绝对导入。 前进! Name 'file' is not defined open()代替了原来的file()。PapayaWhip则替代了原来的black 再来一次,运行test.py来执行我们的测试样例… C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml Traceback (most recent call last): File "test.py", line 9, in for line in file(f, 'rb'): NameError: name 'file' is not defined 这一条也出乎我的意外,因为在记忆中我一直都在使用这种风格的代码。在Python 2里,全局的file()函数是open()函数的一个别名,open()函数是打开文件用于读取的标准方法。在Python 3中,全局的file()函数不再存在了,但是open()还保留着。 这样的话,最简单的解决办法就是将file()调用替换为对open()的调用: for line in open(f, 'rb'): 这即是我关于这个问题想要说的。 Can’t use a string pattern on a bytes-like object 现在事情开始变得有趣了。对于“有趣,”我的意思是“跟地狱一样让人迷茫。” C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml Traceback (most recent call last): File "test.py", line 10, in u.feed(line) File "C:\home\chardet\chardet\universaldetector.py", line 98, in feed if self._highBitDetector.search(aBuf): TypeError: can't use a string pattern on a bytes-like object 我们先来看看self._highBitDetector是什么,然后再来调试这个错误。它被定义在UniversalDetector类的__init__方法中。 class UniversalDetector: def __init__(self): self._highBitDetector = re.compile(r'[\x80-\xFF]') 这段代码预编译一条正则表达式,它用来查找在128–255 (0x80–0xFF)范围内的非ASCII字符。等一下,这似乎不太准确;我需要对更精确的术语来描述它。这个模式用来在128-255范围内查找非ASCII的bytes。 问题就出在这儿了。 在Python 2中,字符串是一个字节数组,它的字符编码信息被分开记录着。如果想要Python 2跟踪字符编码,你得使用Unicode编码的字符串(u'')。但是在Python 3中,字符串永远都是Python 2中所谓的Unicode编码的字符串 — 即,Unicode字符数组(可能存在可变长字节)。由于这条正则表达式是使用字符串模式定义的,所以它只能用来搜索字符串 — 再强调一次,字符数组。但是我们所搜索的并非字符串,它是一个字节数组。看一看traceback,该错误发生在universaldetector.py: def feed(self, aBuf): . . . if self._mInputState == ePureAscii: if self._highBitDetector.search(aBuf): aBuf是什么?让我们原路回到调用UniversalDetector.feed()的地方。有一处地方调用了它,是测试工具,test.py。 u = UniversalDetector() . . . for line in open(f, 'rb'): u.feed(line) 非字符数组,而是一个字节数组。 在此处我们找到了答案:UniversalDetector.feed()方法中,aBuf是从磁盘文件中读到的一行。仔细看一看用来打开文件的参数:'rb'。'r'是用来读取的;OK,没什么了不起的,我们在读取文件。啊,但是'b'是用以读取“二进制”数据的。如果没有标记'b',for循环会一行一行地读取文件,然后将其转换为一个字符串 — Unicode编码的字符数组 — 根据系统默认的编码方式。但是使用'b'标记后,for循环一行一行地读取文件,然后将其按原样存储为字节数组。该字节数组被传递给了 UniversalDetector.feed()方法,最后给了预编译好的正则表达式,self._highBitDetector,用来搜索高位…字符。但是没有字符;有的只是字节。苍天哪。 我们需要该正则表达式搜索的并不是字符数组,而是一个字节数组。 只要我们认识到了这一点,解决办法就有了。使用字符串定义的正则表达式可以搜索字符串。使用字节数组定义的正则表达式可以搜索字节数组。我们只需要改变用来定义正则表达式的参数的类型为字节数组,就可以定义一个字节数组模式。(还有另外一个该问题的实例,在下一行。) class UniversalDetector: def __init__(self): [DEL: - self._highBitDetector = re.compile(r'[\x80-\xFF]') :DEL] [DEL: - self._escDetector = re.compile(r'(\033|~{)') :DEL] [INS: + self._highBitDetector = re.compile(b'[\x80-\xFF]') :INS] [INS: + self._escDetector = re.compile(b'(\033|~{)') :INS] self._mEscCharSetProber = None self._mCharSetProbers = [] self.reset() 在整个代码库内搜索对re模块的使用发现了另外两个该类型问题的实例,出现在charsetprober.py文件中。再次,以上代码将正则表达式定义为字符串,但是却将它们作用在aBuf上,而aBuf是一个字节数组。解决方案还是一样的:将正则表达式模式定义为字节数组。 class CharSetProber: . . . def filter_high_bit_only(self, aBuf): [DEL: - aBuf = re.sub(r'([\x00-\x7F])+', ' ', aBuf) :DEL] [INS: + aBuf = re.sub(b'([\x00-\x7F])+', b' ', aBuf) :INS] return aBuf def filter_without_english_letters(self, aBuf): [DEL: - aBuf = re.sub(r'([A-Za-z])+', ' ', aBuf) :DEL] [INS: + aBuf = re.sub(b'([A-Za-z])+', b' ', aBuf) :INS] return aBuf Can't convert 'bytes' object to str implicitly 奇怪,越来越不寻常了… C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml Traceback (most recent call last): File "test.py", line 10, in u.feed(line) File "C:\home\chardet\chardet\universaldetector.py", line 100, in feed elif (self._mInputState == ePureAscii) and self._escDetector.search(self._mLastChar + aBuf): TypeError: Can't convert 'bytes' object to str implicitly 在此存在一个Python解释器与代码风格之间的不协调。TypeError可以出现在那一行的任意地方,但是traceback不能明确定地指出错误的位置。可能是第一个或者第二个条件语句(conditional),对traceback来说,它们是一样的。为了缩小调试的范围,我们需要把这条代码分割成两行,像这样: elif (self._mInputState == ePureAscii) and \ self._escDetector.search(self._mLastChar + aBuf): 然后再运行测试工具: C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml Traceback (most recent call last): File "test.py", line 10, in u.feed(line) File "C:\home\chardet\chardet\universaldetector.py", line 101, in feed self._escDetector.search(self._mLastChar + aBuf): TypeError: Can't convert 'bytes' object to str implicitly 啊哈!错误不在第一个条件语句上(self._mInputState == ePureAscii),是第二个的问题。但是,是什么引发了TypeError错误呢?也许你会想search()方法需要另外一种类型的参数,但是那样的话,就不会产生当前这种traceback了。Python函数可以使用任何类型参数;只要传递了正确数目的参数,函数就可以执行。如果我们给函数传递了类型不匹配的参数,代码可能就会崩溃,但是这样一来,traceback就会指向函数内部的某一代码块了。但是当前得到的traceback告诉我们,错误就出现在开始调用search()函数那儿。所以错误肯定就出在+操作符上,该操作用于构建最终会传递给search()方法的参数。 从前一次调试的过程中,我们已经知道aBuf是一个字节数组。那么self._mLastChar又是什么呢?它是一个在reset()中定义的实例变量,而reset()方法刚好就是被__init__()调用的。 class UniversalDetector: def __init__(self): self._highBitDetector = re.compile(b'[\x80-\xFF]') self._escDetector = re.compile(b'(\033|~{)') self._mEscCharSetProber = None self._mCharSetProbers = [] self.reset() def reset(self): self.result = {'encoding': None, 'confidence': 0.0} self.done = False self._mStart = True self._mGotData = False self._mInputState = ePureAscii self._mLastChar = '' 现在我们找到问题的症结所在了。你发现了吗?self._mLastChar是一个字符串,而aBuf是一个字节数组。而我们不允许对字符串和字节数组做连接操作 — 即使是空串也不行。 那么,self._mLastChar到底是什么呢?在feed()方法中,在traceback报告的位置以下几行就是了。 if self._mInputState == ePureAscii: if self._highBitDetector.search(aBuf): self._mInputState = eHighbyte elif (self._mInputState == ePureAscii) and \ self._escDetector.search(self._mLastChar + aBuf): self._mInputState = eEscAscii self._mLastChar = aBuf[-1] feed()方法被一次一次地调用,每次都传递给它几个字节。该方法处理好它收到的字节(以aBuf传递进去的),然后将最后一个字节保存在self._mLastChar中,以便下次调用时还会用到。(在多字节编码中,feed()在调用的时候可能只收到了某个字符的一半,然后下次调用时另一半才被传到。)但是因为aBuf已经变成了一个字节数组,所以self._mLastChar也需要与其匹配。可以这样做: def reset(self): . . . [DEL: - self._mLastChar = '' :DEL] [INS: + self._mLastChar = b'' :INS] 在代码库中搜索“mLastChar”,mbcharsetprober.py中也发现一个相似的问题,与之前不同的是,它记录的是最后2个字符。MultiByteCharSetProber类使用一个单字符列表来记录末尾的两个字符。在Python 3中,这需要使用一个整数列表,因为实际上它记录的并不是是字符,而是字节对象。(字节对象即范围在0-255内的整数。) class MultiByteCharSetProber(CharSetProber): def __init__(self): CharSetProber.__init__(self) self._mDistributionAnalyzer = None self._mCodingSM = None [DEL: - self._mLastChar = ['\x00', '\x00'] :DEL] [INS: + self._mLastChar = [0, 0] :INS] def reset(self): CharSetProber.reset(self) if self._mCodingSM: self._mCodingSM.reset() if self._mDistributionAnalyzer: self._mDistributionAnalyzer.reset() [DEL: - self._mLastChar = ['\x00', '\x00'] :DEL] [INS: + self._mLastChar = [0, 0] :INS] Unsupported operand type(s) for +: 'int' and 'bytes' 有好消息,也有坏消息。好消息是我们一直在前进着… C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml Traceback (most recent call last): File "test.py", line 10, in u.feed(line) File "C:\home\chardet\chardet\universaldetector.py", line 101, in feed self._escDetector.search(self._mLastChar + aBuf): TypeError: unsupported operand type(s) for +: 'int' and 'bytes' …坏消息是,我们好像一直都在原地踏步。 但我们确实一直在取得进展!真的!即使traceback在相同的地方再次出现,这一次的错误毕竟与上次不同。前进!那么,这次又是什么错误呢?上一次我们确认过了,这一行代码不应该会再做连接int型和字节数组(bytes)的操作。事实上,我们刚刚花了相当长一段时间来保证self._mLastChar是一个字节数组。它怎么会变成int呢? 答案不在上几行代码中,而在以下几行。 if self._mInputState == ePureAscii: if self._highBitDetector.search(aBuf): self._mInputState = eHighbyte elif (self._mInputState == ePureAscii) and \ self._escDetector.search(self._mLastChar + aBuf): self._mInputState = eEscAscii self._mLastChar = aBuf[-1] 字符串中的元素仍然是字符串,字节数组中的元素则为整数。 该错误没有发生在feed()方法第一次被调用的时候;而是在第二次调用的过程中,在self._mLastChar被赋值为aBuf末尾的那个字节之后。好吧,这又会有什么问题呢?因为获取字节数组中的单个元素会产生一个整数,而不是字节数组。它们之间的区别,请看以下在交互式shell中的操作: >>> aBuf = b'\xEF\xBB\xBF' ① >>> len(aBuf) 3 >>> mLastChar = aBuf[-1] >>> mLastChar ② 191 >>> type(mLastChar) ③ >>> mLastChar + aBuf ④ Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for +: 'int' and 'bytes' >>> mLastChar = aBuf[-1:] ⑤ >>> mLastChar b'\xbf' >>> mLastChar + aBuf ⑥ b'\xbf\xef\xbb\xbf' 1. 定义一个长度为3的字节数组。 2. 字节数组的最后一个元素为191。 3. 它是一个整数。 4. 连接整数和字节数组的操作是不允许的。我们重复了在universaldetector.py中发现的那个错误。 5. 啊,这就是解决办法了。使用列表分片从数组的最后一个元素中创建一个新的字节数组,而不是直接获取这个元素。即,从最后一个元素开始切割,直到到达数组的末尾。当前mLastChar是一个长度为1的字节数组。 6. 连接长度分别为1和3的字节数组,则会返回一个新的长度为4的字节数组。 所以,为了保证universaldetector.py中的feed()方法不管被调用多少次都能够正常运行,我们需要将self._mLastChar实例化为一个长度为0的字节数组,并且保证它一直是一个字节数组。 self._escDetector.search(self._mLastChar + aBuf): self._mInputState = eEscAscii [DEL: - self._mLastChar = aBuf[-1] :DEL] [INS: + self._mLastChar = aBuf[-1:] :INS] ord() expected string of length 1, but int found 困了吗?就要完成了… C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml ascii with confidence 1.0 tests\Big5\0804.blogspot.com.xml Traceback (most recent call last): File "test.py", line 10, in u.feed(line) File "C:\home\chardet\chardet\universaldetector.py", line 116, in feed if prober.feed(aBuf) == constants.eFoundIt: File "C:\home\chardet\chardet\charsetgroupprober.py", line 60, in feed st = prober.feed(aBuf) File "C:\home\chardet\chardet\utf8prober.py", line 53, in feed codingState = self._mCodingSM.next_state(c) File "C:\home\chardet\chardet\codingstatemachine.py", line 43, in next_state byteCls = self._mModel['classTable'][ord(c)] TypeError: ord() expected string of length 1, but int found OK,因为c是int类型的,但是ord()需要一个长度为1的字符串。就是这样了。c在哪儿定义的? # codingstatemachine.py def next_state(self, c): # for each byte we get its class # if it is first byte, we also get byte length byteCls = self._mModel['classTable'][ord(c)] 不是这儿; 此处c只是被传递给了next_state()函数。我们再上一级看看。 # utf8prober.py def feed(self, aBuf): for c in aBuf: codingState = self._mCodingSM.next_state(c) 看到了吗?在Python 2中,aBuf是一个字符串,所以c就是一个长度为1的字符串。(那就是我们通过遍历字符串所得到的 — 所有的字符,一次一个。)因为现在aBuf是一个字节数组,所以c变成了int类型的,而不再是长度为1的字符串。也就是说,没有必要再调用ord()函数了,因为c已经是int了! 这样修改: def next_state(self, c): # for each byte we get its class # if it is first byte, we also get byte length [DEL: - byteCls = self._mModel['classTable'][ord(c)] :DEL] [INS: + byteCls = self._mModel['classTable'][c] :INS] 在代码库中搜索“ord(c)”后,发现sbcharsetprober.py中也有相似的问题… # sbcharsetprober.py def feed(self, aBuf): if not self._mModel['keepEnglishLetter']: aBuf = self.filter_without_english_letters(aBuf) aLen = len(aBuf) if not aLen: return self.get_state() for c in aBuf: order = self._mModel['charToOrderMap'][ord(c)] …还有latin1prober.py… # latin1prober.py def feed(self, aBuf): aBuf = self.filter_with_english_letters(aBuf) for c in aBuf: charClass = Latin1_CharToClass[ord(c)] c在aBuf中遍历,这就意味着它是一个整数,而非字符串。解决方案是相同的:把ord(c)就替换成c。 # sbcharsetprober.py def feed(self, aBuf): if not self._mModel['keepEnglishLetter']: aBuf = self.filter_without_english_letters(aBuf) aLen = len(aBuf) if not aLen: return self.get_state() for c in aBuf: [DEL: - order = self._mModel['charToOrderMap'][ord(c)] :DEL] [INS: + order = self._mModel['charToOrderMap'][c] :INS] # latin1prober.py def feed(self, aBuf): aBuf = self.filter_with_english_letters(aBuf) for c in aBuf: [DEL: - charClass = Latin1_CharToClass[ord(c)] :DEL] [INS: + charClass = Latin1_CharToClass[c] :INS] Unorderable types: int() >= str() 继续我们的路吧。 C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml ascii with confidence 1.0 tests\Big5\0804.blogspot.com.xml Traceback (most recent call last): File "test.py", line 10, in u.feed(line) File "C:\home\chardet\chardet\universaldetector.py", line 116, in feed if prober.feed(aBuf) == constants.eFoundIt: File "C:\home\chardet\chardet\charsetgroupprober.py", line 60, in feed st = prober.feed(aBuf) File "C:\home\chardet\chardet\sjisprober.py", line 68, in feed self._mContextAnalyzer.feed(self._mLastChar[2 - charLen :], charLen) File "C:\home\chardet\chardet\jpcntx.py", line 145, in feed order, charLen = self.get_order(aBuf[i:i+2]) File "C:\home\chardet\chardet\jpcntx.py", line 176, in get_order if ((aStr[0] >= '\x81') and (aStr[0] <= '\x9F')) or \ TypeError: unorderable types: int() >= str() 这都是些什么?“Unorderable types”?字节数组与字符串之间的差异引起的问题再一次出现了。看一看以下代码: class SJISContextAnalysis(JapaneseContextAnalysis): def get_order(self, aStr): if not aStr: return -1, 1 # find out current char's byte length if ((aStr[0] >= '\x81') and (aStr[0] <= '\x9F')) or \ ((aStr[0] >= '\xE0') and (aStr[0] <= '\xFC')): charLen = 2 else: charLen = 1 aStr从何而来?再深入栈内看一看: def feed(self, aBuf, aLen): . . . i = self._mNeedToSkipCharNum while i < aLen: order, charLen = self.get_order(aBuf[i:i+2]) 看,是aBuf,我们的老战友。从我们在这一章中所遇到的问题你也可以猜到了问题的关键了,因为aBuf是一个字节数组。此处feed()方法并不是整个地将它传递出去;而是先对它执行分片操作。就如你在这章前面看到的,对字节数组执行分片操作的返回值仍然为字节数组,所以传递给get_order()方法的aStr仍然是字节数组。 那么以下代码是怎样处理aStr的呢?它将该字节第一个元素与长度为1的字符串进行比较操作。在Python 2,这是可以的,因为aStr和aBuf都是字符串,所以aStr[0]也是字符串,并且我们允许比较两个字符串的是否相等。但是在Python 3中,aStr和aBuf都是字节数组,而aStr[0]就成了一个整数,没有执行显式地强制转换的话,是不能对整数和字符串执行相等性比较的。 在当前情况下,没有必要添加强制转换,这会让代码变得更加复杂。aStr[0]产生一个整数;而我们所比较的对象都是常量(constant)。那就把长度为1的字符串换成整数吧。我们也顺便把aStr换成aBuf吧,因为aStr本来也不是一个字符串。 class SJISContextAnalysis(JapaneseContextAnalysis): [DEL: - def get_order(self, aStr): :DEL] [DEL: - if not aStr: return -1, 1 :DEL] [INS: + def get_order(self, aBuf): :INS] [INS: + if not aBuf: return -1, 1 :INS] # find out current char's byte length [DEL: - if ((aStr[0] >= '\x81') and (aStr[0] <= '\x9F')) or \ :DEL] [DEL: - ((aBuf[0] >= '\xE0') and (aBuf[0] <= '\xFC')): :DEL] [INS: + if ((aBuf[0] >= 0x81) and (aBuf[0] <= 0x9F)) or \ :INS] [INS: + ((aBuf[0] >= 0xE0) and (aBuf[0] <= 0xFC)): :INS] charLen = 2 else: charLen = 1 # return its order if it is hiragana [DEL: - if len(aStr) > 1: :DEL] [DEL: - if (aStr[0] == '\202') and \ :DEL] [DEL: - (aStr[1] >= '\x9F') and \ :DEL] [DEL: - (aStr[1] <= '\xF1'): :DEL] [DEL: - return ord(aStr[1]) - 0x9F, charLen :DEL] [INS: + if len(aBuf) > 1: :INS] [INS: + if (aBuf[0] == 0x202) and \ :INS] [INS: + (aBuf[1] >= 0x9F) and \ :INS] [INS: + (aBuf[1] <= 0xF1): :INS] [INS: + return aBuf[1] - 0x9F, charLen :INS] return -1, charLen class EUCJPContextAnalysis(JapaneseContextAnalysis): [DEL: - def get_order(self, aStr): :DEL] [DEL: - if not aStr: return -1, 1 :DEL] [INS: + def get_order(self, aBuf): :INS] [INS: + if not aBuf: return -1, 1 :INS] # find out current char's byte length [DEL: - if (aStr[0] == '\x8E') or \ :DEL] [DEL: - ((aStr[0] >= '\xA1') and (aStr[0] <= '\xFE')): :DEL] [INS: + if (aBuf[0] == 0x8E) or \ :INS] [INS: + ((aBuf[0] >= 0xA1) and (aBuf[0] <= 0xFE)): :INS] charLen = 2 [DEL: - elif aStr[0] == '\x8F': :DEL] [INS: + elif aBuf[0] == 0x8F: :INS] charLen = 3 else: charLen = 1 # return its order if it is hiragana [DEL: - if len(aStr) > 1: :DEL] [DEL: - if (aStr[0] == '\xA4') and \ :DEL] [DEL: - (aStr[1] >= '\xA1') and \ :DEL] [DEL: - (aStr[1] <= '\xF3'): :DEL] [DEL: - return ord(aStr[1]) - 0xA1, charLen :DEL] [INS: + if len(aBuf) > 1: :INS] [INS: + if (aBuf[0] == 0xA4) and \ :INS] [INS: + (aBuf[1] >= 0xA1) and \ :INS] [INS: + (aBuf[1] <= 0xF3): :INS] [INS: + return aBuf[1] - 0xA1, charLen :INS] return -1, charLen 在代码库中查找ord()函数,我们在chardistribution.py中也发现了同样的问题(更确切地说,在以下这些类中,EUCTWDistributionAnalysis,EUCKRDistributionAnalysis,GB2312DistributionAnalysis,Big5DistributionAnalysis,SJISDistributionAnalysis和EUCJPDistributionAnalysis)。对于它们存在的问题,解决办法与我们对jpcntx.py中的类EUCJPContextAnalysis和SJISContextAnalysis的做法相似。 Global name 'reduce' is not defined 再次陷入中断… C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml ascii with confidence 1.0 tests\Big5\0804.blogspot.com.xml Traceback (most recent call last): File "test.py", line 12, in u.close() File "C:\home\chardet\chardet\universaldetector.py", line 141, in close proberConfidence = prober.get_confidence() File "C:\home\chardet\chardet\latin1prober.py", line 126, in get_confidence total = reduce(operator.add, self._mFreqCounter) NameError: global name 'reduce' is not defined 根据官方手册:What’s New In Python 3.0,函数reduce()已经从全局名字空间中移出,放到了functools模块中。引用手册中的内容:“如果需要,请使用functools.reduce(),99%的情况下,显式的for循环使代码更有可读性。”你可以从Guido van Rossum的一篇日志中看到关于这项决策的更多细节:The fate of reduce() in Python 3000。 def get_confidence(self): if self.get_state() == constants.eNotMe: return 0.01 total = reduce(operator.add, self._mFreqCounter) reduce()函数使用两个参数 — 一个函数,一个列表(更严格地说,可迭代的对象就行了) — 然后将函数增量式地作用在列表的每个元素上。换句话说,这是一种良好而高效的用于综合(add up)列表所有元素并返回其结果的方法。 这种强大的技术使用如此频繁,所以Python就添加了一个全局的sum()函数。 def get_confidence(self): if self.get_state() == constants.eNotMe: return 0.01 [DEL: - total = reduce(operator.add, self._mFreqCounter) :DEL] [INS: + total = sum(self._mFreqCounter) :INS] 由于我们不再使用operator模块,所以可以在文件最上方移除那条import语句。 from .charsetprober import CharSetProber from . import constants [DEL: - import operator :DEL] 可以开始测试了吧?(快要吐血的样子…) C:\home\chardet> python test.py tests\*\* tests\ascii\howto.diveintomark.org.xml ascii with confidence 1.0 tests\Big5\0804.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\blog.worren.net.xml Big5 with confidence 0.99 tests\Big5\carbonxiv.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\catshadow.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\coolloud.org.tw.xml Big5 with confidence 0.99 tests\Big5\digitalwall.com.xml Big5 with confidence 0.99 tests\Big5\ebao.us.xml Big5 with confidence 0.99 tests\Big5\fudesign.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\kafkatseng.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\ke207.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\leavesth.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\letterlego.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\linyijen.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\marilynwu.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\myblog.pchome.com.tw.xml Big5 with confidence 0.99 tests\Big5\oui-design.com.xml Big5 with confidence 0.99 tests\Big5\sanwenji.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\sinica.edu.tw.xml Big5 with confidence 0.99 tests\Big5\sylvia1976.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\tlkkuo.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\tw.blog.xubg.com.xml Big5 with confidence 0.99 tests\Big5\unoriginalblog.com.xml Big5 with confidence 0.99 tests\Big5\upsaid.com.xml Big5 with confidence 0.99 tests\Big5\willythecop.blogspot.com.xml Big5 with confidence 0.99 tests\Big5\ytc.blogspot.com.xml Big5 with confidence 0.99 tests\EUC-JP\aivy.co.jp.xml EUC-JP with confidence 0.99 tests\EUC-JP\akaname.main.jp.xml EUC-JP with confidence 0.99 tests\EUC-JP\arclamp.jp.xml EUC-JP with confidence 0.99 . . . 316 tests 天哪,伙计,她真的欢快地跑起来了!/me does a little dance ⁂ 总结 我们学到了什么? 1. 尝试大批量地把代码从Python 2移植到Python 3上是一件让人头疼的工作。没有捷径。它确实很困难。 2. 自动化的2to3脚本确实有用,但是它只能做一些简单的辅助工作 — 函数重命名,模块重命名,语法修改等。之前,它被认为是一项会让人印象深刻的大工程,但是最后,实际上它只是一个能智能地执行查找替换机器人。 3. 在移植chardet库的时候遇到的头号问题就是:字符串和字节对象之间的差异。在我们这个情况中,这种问题比较明显,因为整个chardet库就是一直在执行从字节流到字符串的转换。但是“字节流”出现的方式会远超出你的想象。以“二进制”模式读取文件?我们会获得字节流。获取一份web页面?调用web API?这也会返回字节流。 4. 你需要彻底地了解所面对的程序。如果那段程序是自己写自然非常好,但是至少,我们需要够理解所有晦涩难懂的细节。因为bug可能埋伏在任何地方。 5. 测试样例是必要的。没有它们的话不要尝试着移植代码。我自信移植后的chardet模块能在Python 3中工作的唯一理由是,我一开始就使用了测试集合来检验所有主要的代码路径。如果你还没有任何测试集,在移植代码之前自己写一些吧。如果你的测试集合太小,那么请写全。如果测试集够了,那么,我们就又可以开始历险了。 ☜ ☞ © 2001–9 Mark Pilgrim #RSS 无图版 | 手机版 | 风格切换 [menu-down.gif] | 学生手册 [logo.png] >> 您尚未 登录 注册 | 搜索 | 社区服务 [menu-down.gif] | GALGAME角色 人气投票活动 | 近期关注 社区服务 银行 道具中心 勋章中心 本地设置 风格切换 milkyway white hinata hosizora simple pink wind [home.gif] 『澄空学园』 >> 【日语自学教室】 >> 转贴:关于彼得·纽马克 的文本范畴理论与翻译方法 [rss.png] [reply.png] [post.png] * 新 帖 本页主题: 转贴:关于彼得·纽马克的文本范畴理论与翻译方法 上一主题 | 下一主题 该用户目前不在线 玖羽 君の青春は輝いているか [avatar.php?userid=182126&dateline=1113733598] 级别: 澄空二年生下学期 [12.gif] 精华: 2 发帖: 313 学分: 21 点 澄空币: 1762 KID GPA: 6 点 资源积分: 0 MG 注册时间:2005-06-03 最后登录:2010-12-23 引用 编辑 短信 只看 [2.gif] 转贴:关于彼得·纽马克的文本范畴理论与翻译方法 来源:http://bbs.sumisora.org/read.php?tid=10902174 表达型文本Expressive Texts、信息型文本Informative Texts、呼唤型文 本Vocative Texts 语义翻译Semantic Translation、交际翻译Communicative Translation 来自 http://www.cqvip.com/qk/88569A/200801/26476364.html 原文的废话就省了 英国著名翻译理论家彼得·纽马克(Peter Newmark)根据布勒的语言功能理论将 文本划分为三大范畴,即表达型文本、信息型文本及呼唤型文本。同时,他提出 了交际翻译和语义翻译这两种翻译方法。在此基础上,他提出了表达型文本主要 使用语义翻译的方法,信息型文本和呼唤型文本主要使用交际翻译的方法。本文 试浅谈纽马克的文本范畴理论和上述两种翻译方法,并用具体的例子加以阐述, 以期更好地指导翻译实践。 表达型文本 语言表达功能的核心在于说话者或作者运用这些话语表达其思想感情,不去考虑 读者的反应。纽马克认为,从翻译的目的看,典型的表达型文本有: (1)严肃的文学作品,包括抒情诗、短篇小说、长篇小说、戏剧等; (2)权威性言论,主要有政治人物的政治演说及文件等,法律法规文献,公认的 权威人物撰写的科学、哲学和学术著作。这些文本的权威性来自其作者的地位或 可靠性以及他们的语言能力。虽然这样的文本大多不具有言外之义,但往往带有 其作者个人特征的“印记”; (3)自传、散文及个人信函。当这些文本是作者个人情感的一种宣泄、当读者背 景模糊时,便属于表达型文本。 信息型文本 语言信息功能的核心所在是外部情况,即一个话题的全部信息,或者说语言之外 的现实情况。典型的信息型文本可以涉及任何知识领域,其形式往往非常标准化 ,如教材、技术报告、报纸或杂志文章、学术论文、备忘录或会议记录等。不过 ,如果某文章是关于文学题材的,由于其常表达某种价值观或评判,因此倾向于 被划为表达型文本;如果某报告或论文的作者具有较高的地位或是普遍承认的权 威人物,那么它也可以被划为“表达型文本”。信息型文本由于强调“真实性” ,通常用不带个人特色的现代语言写成,作者遂变成“无名”的,而带有作者个 人风格的“印记”的表达型文本因采用了独特的句型.新奇的搭配等使得作者具 有神圣的地位。 呼唤型文本 呼唤型文本以读者群为中心,意在号召读者们按照作者的意图去行动.思考、感 受或作出反应。通知、说明书、宣传手册、广告、通俗小说等都属于这一范畴。 出于呼唤功能的考虑,这种类型的文本往往使用读者群能迅速理解接受的语言, 并且会采用不同的称呼或语法形式来表现作者与读者群之间的不同关系。 值得注意的是,很少有文本是纯粹的表达型、信息型或呼唤型文本;大多数文本 都同时具有这三种功能,只是其中一个功能特别突出。大多数信息型文本或者从 头至尾带有呼唤色彩,或者在一个单独的段落里用提出建议,观点或评判来表现 呼唤功能。表达型文本里也会带有信息。总而言之,“表达型”、“信息型”和 “呼唤型”只是为了突出不同文本特意强调的部分。 纽马克提出的语义翻译与交际翻译 语义翻译 在语义翻译中,目标文本应在目标语的语义和句法结构允许的情况下尽可能准确 地再现源文本的语境意义。它与直译的区别在于,直译后的译文只将源文本词语 的基本意义译了过来,虽然符合目标语的句法结构,但未考虑源语用词的语境因 素,不尊重语言的使用场合。在语义翻译中,译者首先必须忠于原作者,服从于 源语文化,只在源文本的内涵意义构成理解障碍时才加以解释。因此语义翻译倾 向于超额翻译,与交际翻译相比会比较复杂、笨拙。 交际翻译 在交际翻译中,目标文本所产生的效果应力求按近源文本。由于重效果而不重内 容,交际翻译首先忠于目标语和目标文本读者,要求源语服从目标语和文化,不 给读者留下任何疑点和晦涩难懂之处。因此交际翻译倾向于欠额翻译,与语义翻 译相比会比较通顺、简朴,译文通常会比较长。 表达型文本的翻译 在翻译表达型文本时,要遵循“作者第一”的原则。在严肃的文学作品、散文、 权威性言论及自传等表达型文本时,由于作者的地位是至高无上的,在翻译时应 采用语义翻译的方法,忠实地翻译原作的思想内容,同时还应保留原作中带有作 者个人风格“印记”的独特搭配、创造性比喻、新奇的句型等。原作中带有文化 色彩的成分也应忠实地移植过来,以保留原作独特的异域情调。 信息型文本的翻译 在翻译信息型文本时应遵循“真实性第一”的原则,其语言往往是中性的,没有 明显的个人特征或地域色彩,力求通顺易解,因此往往采用交际翻译。 呼唤型文本的翻译 在翻译呼唤型文本时应遵循“读者第一”的原则,把读者及其反应作为核心,注 重可读性,要求做到通俗易懂。 因此往往采用交际翻译。 [sigline.gif]   我现在依然记得在峰会上噗董事长的疾呼:“女权不是多了,而是少了!女 性表现不是过了,而是不足!胸部要再大一点!年龄要再小一点!衣服要再少一 点!给我一个34d不下垂的女性!” 顶端 2008-12-20 10:07 | [楼 主] 该用户目前不在线 Xenapior Super Mario Galaxy [old1.jpg] 级别: 澄空二年生上学期 [11.gif] 精华: 1 发帖: 357 学分: 7 点 澄空币: 164 KID GPA: 0 点 资源积分: 0 MG 注册时间:2005-08-17 最后登录:2010-07-23 引用 编辑 短信 只看 来源:http://bbs.sumisora.org/read.php?tid=10902174 照这个理论,我们平时字幕组和汉化组的作品应该多属于表达型文本+呼唤型文 本,而非提供信息的“信息型文本”? 顶端 2008-12-21 02:07 | 1 楼 帖子浏览记录 [menu-down.gif] [快速跳至..........................] [home.gif] 『澄空学园』 >> 【日语自学教室】 [reply.png] [post.png] Total 0.013426(s) query 5, Time now is:01-14 22:57, Gzip disabled, Load is low Powered by PHPWind v6.3.2 Certificate Code (c) 2003-08 PHPWind.com Corporation Contact us 返 回 中图分类号:H0  [logo09.jpg] [yixie-logo09.jpg] 收藏我们 | 登录 | 注册 | 与好友分享 客服热线:400-711-6653 * 首页 * 特价服务: 证书翻译 * 简历翻译 * 包月服务 * 特色产品: 中小企业 * 翻译校对 * 小语种翻译 * 积分换领 * 更多>> * 帮助: 动画演示 * 随你译流程 * 翻译下单 * * * * 翻译纪录 * * * * 我的账户 * * * * 特色翻译 * 简历翻译 * 证书翻译 * 论文翻译 * 公司起名 * 包月服务 * 说明书翻译 * 机器翻译 * 中小企业 * 账户充值 * 小语种翻译 * 翻译校对 * 快捷翻译 * 出国翻译 * 行业翻译 * 科技贸易 * 法律 * 建筑 * 化工 * 文化 * 工程技术 * 生物医学 * 经济金融 * 新闻宣传 * 医药 * 标书 * 机械 * 能源 * IT * 口译服务 * * 同声传译 * 交替传译 * 陪同翻译 * 翻译价格 * 价格综述 * 英语 * 西班牙语 * 阿拉伯语 * 俄语 * 匈牙利语 * 葡萄牙语 * 意大利语 * 德语 * 波兰语 * 瑞典语 * 日语 * 韩语 * 马来语 * 更多语言 * 帮助中心 * 下单演示 * 支付演示 * 注册演示 * 查看翻译记录演示 * 如何统计字数 * 如何获取译稿 * 为什么要先付款 * 随你译流程 * VIP客户 * * * * 关于我们 * * 公司介绍 * 媒体报道 * 专家团队 * 成为合作翻译 * 谁在翻译 * 校园代理 * 翻译资讯 * * 翻译技巧 * 译界新闻 * 译文欣赏 * 翻译文摘 * 工程技术 * 出国留学 * 经济金融 * 生物医学 [banner_gg.jpg] 您当前的位置:随你译 > 翻译资讯 > 翻译文摘 > 中医药文献翻译技巧 中医药文献翻译技巧 时间:2010-09-20 16:48 点击:次 TAGS: 医学论文翻译,中医药文献,翻译技巧,翻 [baoyuefuwu.gif] 作为一家新型的大型专业翻译公司,随你译拥有中国首屈一指的翻译资源。通过3年的积累,已经拥有多达6万名专业注册译者,可以翻译56种语言,42个行业。大量的高素质译者保证我们可以给您提供最熟悉您行并业的专才译者队伍,通过我们卓有成效的管理体系,从而提供一个比同类公司在便捷、高质、价优、可信方面更为出色的翻译服务。 客服热线:400-711-6653 中医药文献翻译需要理论指导GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 中国改革开放二十年,国内面貌发生了很大变化,不少海外人士对中国的态度越来越友好。现在,许多西方人都急于了解中国,中国的传统、风俗、文化和艺术等无一不吸引着他们。传统的中国医学,更因其对草药的巧妙运用,独特的理论系统及有效的治疗而备受瞩目。然而,当西医已渗透了中国医学的各个领域,西方医药业在中国大赚其钱的时候,中国医学却迟迟未能在西方国家得到广泛的推广和应用。其原因究竟是什么呢?GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 众所周知,翻译在技术、文化、艺术等各方面的国际交流中扮演着重要角色。中国医学的理论系统和治疗方法和西方医学有很大差别,西方人要了解中医,最直接的方法就是通过中医文献翻译。中医药文献翻译质量不高,数量不多是中医药在西方国家迟迟得不到推广关键因素之一。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 然而,中医药文献的翻译谈何容易。对中医文献进行英译,除了对译者要有语言、专业、文化的知识要求外,还要有一定的翻译理论做指导。任何的实践有了理论的指导就有了方向感,避免了盲目性。近一个世纪以来,翻译理论层出不穷,究竟哪一种理论最适宜于指导中医药翻译呢?20世纪70年代,德国的功能派翻译理论家提出了了翻译行为论(theory of translational action)与翻译目的论(skopos theory)并将此确立为功能翻译理论的核心内容。我们认为,功能翻译理论中的“目的论”对中国传统医学文献的翻译有很较大的实用意义和指导意义。这是因为:(1)目的论创新性地提出了目的性原则,肯定了忠实性原则(fidelity rule),并提出了翻译标准多元化(poly-criteria)的观点;(2)目的论强调了翻译工作者的地位;(3)目的论认为翻译不仅只是语言的翻译,而且也是文化的翻译。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 “目的论是翻译行为论的组成部分。在此理论中,翻译被视为翻译行为中以源文本为基础的一种行为。……任何形式的翻译,当然也包括翻译本身,可被视为一种行为。任何的行为都有目的、目标”。(Vermeer:1986)GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 skopos 一词源于希腊文,翻译为英文是goal, aim,即中文的目的、目标。威密尔为 skopos下了3个定义:GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 A.翻译过程,也即翻译过程的目的;GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 B.翻译结果,也即翻译文本的功能;GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 C.翻译模式,也即翻译模式的意图;GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 任何的行为都有达成某种目的的意图(intention)。当译者有了翻译意图就会依据意图逐步达成既定目标。达成了的“目标”一定会产生某种影响,这就是翻译文本(translatum)——即目标文本(source text)——的功能。威密尔称之为文本交际功能(communicative function)。因此,翻译就是被赋予了目的或功能的具有意义的行为(action)了。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 对中医药翻译而言,尽管译者有了翻译某篇中医药文献的意图,但如果译者不清楚其翻译目的及其翻译将起什么作用的话,他的翻译就不会是好的翻译。翻译中医药文献的译者们应该清楚地意识到,无论是否有委托人(commissioner)或顾客(client),也无论译者是否因翻译而赚钱,其翻译最终都会具有交际功能——任何国家的懂目标语言的人都有可能通过你的翻译了解中医药。一个有责任心的译者应主动地为其翻译行为负责。从这一方面来讲,翻译行为服务于目的,而目的则不仅成为翻译的标准,也成为了翻译行为的动力了。这就是“目的性原则”。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 2. 忠实性原则与翻译标准多元论GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 目的论肯定了翻译的忠实性原则。对于中医药翻译,忠实于原文是很重要的。中国传统医学在中国发展、流传了几千年,已经建立了完整而独特的治疗系统。这个系统无论是理论上还是实际操作上与西医都是很不相同的。例如,中医在医疗上强调整体概念,讲究天人合一;用药上重视药的性味归经。而西医却从局部入手,用药上往往是以消灭局部有害因子为主。又例如,中医中的五行学说,金、木、水、火、土的相生相克和阴阳学说在西医中是根本没有对应概念的。这些中医特色是构成中医药翻译难的因素之一。一个责任心不强的翻译在处理这些信息的时候是很容易就偏离了原文的------可能西方化了原文信息,或干脆省略了与西医相异的部分。这样一来,无疑侵犯了文本的交际功能。一篇好的译文至少是要能再现原文信息的。忠实于原文,是 译者们翻译中医文献时首要考虑的准则。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 然而,需要注意的是:忠实于内容远比忠实于形式重要。中医文献的古文风格和文学性浓的风格在中医药不断发展,社会语言不断变革的时候,却被保持下来了。这也是中医的一个奇迹。中医医生常引经据典以论证自己的医疗观点并视古典文献为金科玉律。同时,中国人一般都认为中国古文是优美高雅且高度概括,以至有人主张翻译中医文献时要尽量保持其古典风格以体现中医源远流长的特色和魅力。但是,中国人尚且未能轻易地读懂医古文,毋庸说把它翻译为另一种文字了。此外,目标语读者是和我们同时代的或未来的人,如果我们过于坚持古典文学风格,文本的交际功能将被削弱。那么,忠实性法则和文本的交际功能是否就无法统一呢?目的论提出的翻译标准多元化在这个问题上给了我们很多启发。以“心、肝、脾、肺、肾”这五个器官 为例。在中医里,这五个器官不但是解剖概念,也是功能概念。如:心主神志;肝主疏泄;脾主运化;肺司呼吸,通调水道;肾主精。而在西医里,心只是循环系统的一个器官,无思考功能;肝是消化器官,与情志无关;脾是淋巴器官,不能消化食物;肺是呼吸系统的器官,与水无关;肾是泌尿器官,与生殖无关。照此看来,把这五个器官译为“heart、liver、spleen、lung、kidney”就是不对的了。有的学者提出用汉语拼音表达以忠实于中医特色。然而,中西医学都有这五个基本器官的概念,如果连最基本的概念我们也不与国际惯用概念接轨、融合,又谈何在西方国家的推广中医?面对这样的情况,译者可以以目的论的翻译标准多元化为指导:一以文本交际功能目的为标准,二以忠实性原则为标准。即将“心、肝、脾、肺、肾”译为“heart、liver、splee n、lung、kidney”以满足交际目的,再加注释以正确表达原文意思。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 中医文献专业性强,文学性强,与西医差异较大,单一的翻译标准会使译者无所适从,而多元化的翻译标准使功能目的更贴近实际。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 3.译者就是专家GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 “说到译者,因为需要他们,因为他们被视为专家(expert),因此将他们邀请到特定的情况中来。”(Vermeer:1986)GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 目的论是第一家提出把译者看作专家的理论。威密尔认为,译者应被视为专家,应受到尊敬,我们应信任专家比门外汉懂得多。而专家则要为翻译负责,要和翻译委托人商讨并决定翻译进程。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 在翻译实践中,译者的素质和心理是翻译过程的决定性因素。中医药文献翻译难度大,译者的专家角色就更显重要了。译者不但要中文(古文和现代文)素质高,也要懂得大量的专业知识(西医的和中医的)。正如威密尔所说:“专家应能分辨——这意味着(专家的)知识和责任——什么是什么。”在翻译中医药文献的过程中,常常有些词语是译入语无法完全表达清楚的。颜色的表达就是一个很好的例子。如“青色”,与五行的“木”和五脏的“肝”相对。并有多种含义: 皮肤表面的 “青色”瘀癍; 面“青”唇白 等。若按常规,“青”英译为“green”,但在用英语的国家说到“green”时,人们往往会联想到植物。英语中的“green”根本无法正确表达中医的“青”。这种情况下,内行的专家也许会想到拉丁文,因为拉丁文与医学联系密切,西医医生一般都要懂拉丁文,而拉丁文中颜色的表达是准确且丰富的。假如译者不是专家,能想到这样做吗?GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 根据目的论,译者是决定源文本在翻译过程中的角色的人。如果译者在工作过程中总是受到所谓专家的打扰和质询,就会失去对文本的热情,翻译的信心和耐心。反过来说,如果译者被视为专家,得到了尊重,就会更努力工作以证明自己不愧为专家。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 当然,诚如目的论所说,为了达到既定的目的,在一些有争议的问题上,别人也可与专家争论以至达成共识为止。中医文献翻译尤其如是。因为古文常有不同解释,而且中医的一些问题仍悬而未决。俗话说:“三个臭皮匠胜一个诸葛亮。”“专家”的称呼激励着译者不断地自我提高,与别人的讨论则有助于译者集思广益。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 4.翻译文本的定位---模仿与创造GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 “源文本在源文化(source culture)的气氛中形成,在任何的情况下都与源文化紧密相连。目标文本,即翻译文本,则定位于目标文化(target culture)。正是这点最终决定了翻译是否符合要求(adequacy)”。(Vermeer:1986)GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 目的论以功能目的为准则,通过行为理论和跨文化交际理论研究翻译,明确提出语言是文化的一部分,翻译要同时解决语言和文化的问题。毋庸细说,中医在中国起源、流传发展了几千年,早已成为中国传统文化的一部分。中国长期的闭关锁国政策,使国家无法与外界进行交流,造成了中西方文化的较大差异。正因受到文化习惯的影响,译者在翻译时不得不考虑其翻译是否为目标文化的读者接受。就此问题,威密尔提出了“语际连贯”(intertextual coherence)的概念。威密尔认为,译者应根据先定目标(pre-determined skopos)判断源文本的形式(form)和功能(function)是否符合目标文化的根本要求。这可称之为语际连贯的程度(degree of intertextual coherence),即翻译文本和源文本之间的关系。为了达到交际目的和文本间的语际连贯,译者可以根据原文模仿(imitate)或创造(create)。当然,译者必须考虑其模仿或创造行为将对目标文化造成什么影响和这影响与源文化中的有何不同。但一般来说,模仿和创造只要不侵犯目标文化,往往会丰富了目标文化。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 由于中西医理论系统内的很多概念都截然不同,语际连贯的观点对中医药文献翻译就很有参考价值了。当西医没有中医所要表达的概念时,译者就要模仿和创造以满足翻译的基本要求——忠实于原文并使译文具交际功能。例如中医中“气”的概念,有人建议翻译为air或atmosphere或vital energy,无疑是错误的。因为,“气”在中医学里的有很多的意义:从狭义来说,“气”是人体内不断活动的物质;从广义上说,有“气机”、“邪气”、“正气”等意思。现在,中西方的有关学者已基本达成共识,以汉语拼音表达这些专有概念。类似的“创造”还有针灸穴位的翻译等。这种创造不但尊重源文化,忠实了原文,保持了中医特色,更有利于在目标文化中建立独立的中医体系。GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 5.结束语GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 GTM医学论文网,(医学论文代修改、代发表医学论文、翻译医学论文、医学论文设计、医学论文创意)-爱思医学信息公司 目的论的创立者威密尔等创新性地在翻译行为论的基础上建立了目的论, 拓展了翻译工作者的眼界和思维,为翻译理论提供了新的思路。任何的所谓高级理论假如不能应用到实践中,也只是纸上谈兵。而目的论是实用性很强的理论,其目的性原则和忠实性法则、翻译标准多元化及语际连贯的概念很适合于指导难度较大的中医药文献翻译实践,避免了翻译的盲目性。更难能可贵的是,目的论的创立者摆脱了当时盛行的“对等理论”的束缚,大胆地提出了自己的观点。今天的中国翻译界也应学习这种精神,以目的论为指导,大胆探索,为薄弱的中医药文献翻译开辟一条新道路,为中国传统医学在世界的转播和发展贡献一分力量。 拓展阅读:Un agent vous arrte un feu rouge ; au reastaurant, un garon fait tomber de la sauce sur votre costume neuf ; vous faites la queue pour entrer au thtre et 在红绿灯前,您被警察截住;在饭馆,服务员把肉汁撒在你的新衣服...[详情] 上一篇:骨性关节炎细胞凋亡的研究进 下一篇:英文医学论文题目翻译技巧 相关新闻 * 会计论文翻译 * 英文论文摘要 * 论文摘要翻译 * 论文摘要翻译 * 论文摘要翻译 * 论文英文翻译 * 科技论文英文摘要的书写规范化 * 口腔粘膜下纤维性变患者角朊细胞分泌细胞因子 免费机器翻译 待译文字 翻译结果 [请选择语言] Submit Submit 葡语西班牙语韩语泰语日语意大利语 找不到翻译结果?试试人工翻译! 特色翻译 [content_more_1.gif] * 简历翻译 * 证书翻译 * 论文翻译 * 公司起名 * 包月服务 * 口译服务 * 网站翻译 * 名片翻译 * 排版服务 * 翻译校对 * 快捷翻译 * 账户充值 行业翻译 [content_more_1.gif] * 法律 * 建筑 * 化工 * 文化 * 医药 * 标书 * 机械 * 能源 * 科技贸易 * 工程技术 * 生物医学 * 经济金融 * 新闻宣传 * 网站本地化 [content_gg_1.gif] 热门Tag 简历翻译 证书翻译 论文翻译 公司起名 包月服务 口译服务 网站翻译 名片翻译 排版服务 翻译校对 快捷翻译 工程技术 联系我们 - 快捷支付 - 意见与建议 - 招聘信息 - 服务条款 - 友情链接 - 网站地图 - TAG 给我发消息 随你译,中国最大的网上翻译公司,集中了超过5万名各语种专业译者,为您提供高性价比的笔译,口译,同声传译和本地化等翻译服务. 京ICP备09008907号 Powered by suiniyi.com Copyright 2010 跳转到主要内容 IBM® * 中国 * [ 选择 ] Search in: [dW 全部内容.....] 搜索: ____________________ 搜索 * 首页 * 业务解决方案 * IT 服务 * 产品 * 支持与下载 * 个性化服务 * developerWorks 中国 * Linux * 文档库 使用 Git 管理源代码 工具集在 Linux 上提供了可靠的版本控制功能 Eli M. Dow (emdow@us.ibm.com), 软件工程师, IBM Eli Dow 是位于纽约 Poughkeepsie 的 IBM Linux Test and Integration Center 的软件工程师。他取得了 Clarkson 大学计算机科学与心理学的学士学位和计算机科学硕士学位。他的兴趣包括 GNOME 桌面、人机交互和 Linux 系统编程。他是 IBM 红皮书 Linux for IBM System z9 and IBM zSeries 的作者之一。 简介: Git 是 Linux Torvalds 为了帮助管理 Linux® 内核开发而开发的一个开放源码的版本控制软件。我们可以自己下载这个软件用于对内核的 hack 分析,或者用来管理自己的软件开发项目。本文将向您展示如何使用 Git 工具开始分析 Linux 。 标记本文! 发布日期: 2006 年 8 月 10 日 (最初发布 2006 年 6 月 29 日) 级别: 中级 访问情况 7467 次浏览 建议: 在现代软件开发项目中,要成为一个有效的软件开发人员,我们必须能够与其他项目贡献者并行进行开发。源代码管理(SCM)系统不是什么新思想。为了编写一些能够更快速、简单地开发以后软件项目的软件,已经进行了很多尝试。最新的源代码解决方案都包含了版本控制系统,它可以对源代码的修改进行回滚,从而将有害的代码剔除出项目之外,或者简单地跟踪哪些人修改了代码的哪些行的内容。版本控制系统试图解决开发人员在试图同时对某个文件进行修改时所出现的冲突问题,可以防止用户覆盖其他人所作的修改。源代码管理使用的很多流行解决方案都试图解决以前 SCM 解决方案中的失效问题。 集中化的版本控制系统通常采用两种方式: * 有些提供了文件锁来防止多个用户的并行访问。这些系统对文件进行加锁,这样在某个时间只有一个开发人员对中心仓库具有写入权限。 * 另外一些工具,例如 CVS,允许多个开发人员同时对相同的文件进行编辑,并提供了一些机制稍后合并这些修改。 流行的版本控制系统包括: * CVS * Subversion * Arch * Bazaar * BitKeeper 什么是 Git? 非常简单地说,Git 是 Linus Torvalds 最近实现的源代码管理软件。正如所提供的文档中说的一样,“Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。” Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如,X.org 最近就迁移到 Git 上来了,很多 Freedesktop.org 的项目也迁移到了 Git 上。 Git 目前主要由寻找 CVS 或专有代码管理解决方案替代物的软件开发人员所使用。Git 与 CVS 有很多区别: * 分支更快、更容易。 * 支持离线工作;本地提交可以稍后提交到服务器上。 * Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。 * Git 中的每个工作树都包含一个具有完整项目历史的仓库。 * 没有哪一个 Git 仓库会天生比其他仓库更重要。 _________________________________________________________________ 回页首 安装 要安装当前版本的 Git,我们可以使用供应商在 Linux 发行版中提供的包,或者从最新的稳定快照开始手工进行编译。我建议下载包含最新 Git 源代码稳定快照的 tarball;截止到撰写本文时这个版本是 v1.4.0。我们可以在下面的 参考资料 一节中找到链接。 有了这个 tarball 之后,请确保初始安装所依赖的包都已经安装了。系统中必须包含以下包,以及相应的开发头文件: * zlib * libcurl * libcrypto(OpenSSL) * rsync(2.6.0 或更高版本) 这些条件满足之后,我们就可以开始编译初始的 Git 安装系统了。这个过程对于大部分一直使用 Linux 的开发人员来说应该非常熟悉了。首先使用对应下载的包格式的命令将包展开: $ tar -jxvf git-1.4.0.tar.bz2 或 $ tar -zxvf git-1.4.0.tar.gz 然后切换到适当的目录中,并执行 make 命令。(注意目录名取决于我们下载的快照的日期。) $ cd git-1.4.0/ $ make prefix=/usr/local install $ sudo make prefix=/usr/local install 您会被提示输入 sudo 密码才能继续安装。现在就已经准备好使用 Git 工具了。 _________________________________________________________________ 回页首 获得最新的内核源代码树 在使用 Git 管理源代码仓库时,我们可以使用两种方法开始我们的工作。我们可以使用现有代码的一个本地目录,然后从中生成一个仓库;也可以映射其他人发布的仓库。 对于本文的目的来说,我们将获得 Torvalds 发布的 Git 仓库的一个镜像。下面的命令将创建一个名为 linux-2.6 的 Git 仓库。这个目录包含了一个隐藏目录 .git/ 。 $ git-clone \ git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \ linux-2.6 这个步骤会执行很长时间,因为 Git 正在将内核源代码(这有数百兆大)从 kernel.org 传输到本地机器上。输出结果可能有些晦涩难懂,但是如果您有一个快速的 Internet 链接,卷屏的速度应该相当快。输出结果应该类似于图 1 所示。 图 1. 在下载内核源代码树过程中产生的输出 在下载内核源代码树过程中产生的输出 现在切换到包含新下载的内核的目录中: $ cd linux-2.6 现在,我们应该在本地机器上有一个可以工作的 Linux 2.6 仓库了!此时我们就可以对这个仓库进行一些基本的操作了。 _________________________________________________________________ 回页首 更新本地 Git 仓库 在使用 Git 时,我们通常可以假设自己的仓库可能比 kernel.org 的仓库有些滞后。因此我们通常都是首先将自己的仓库更新成最新的上游内核树。这个过程有时称为快速合并(fast-forward merge)。严格来说,我们现在并不需要执行这个过程,因为我们刚刚安装了自己的仓库,它应该还没有过期。但是检查一下毕竟没有坏处: $ cd linux-2.6 $ git-pull git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git ... 如果成功,我们就应该会看到类似于下面的输出结果: receiving file list ... done sent 130 bytes received 21677 bytes 14538.00 bytes/sec total size is 127865858 speedup is 5863.52 Already up-to-date. $> 如果我们的仓库不是最新的,就会看到有些内容通过网络传输到本地机器上了。 _________________________________________________________________ 回页首 从仓库中导出文件 我们需要将文件从 Git 仓库(隐藏目录中的那些文件)中导出到工作目录中才能开始自己的 hack 过程。下面的命令会在当前目录中写入没有隐藏的目录,其中包含了 Linux 的源代码: $ git-checkout 如果您希望覆盖本地修改,可以使用 -f 选项导出文件,这样就可以将您带回到一个干净的状态: $ git-checkout -f 现在在当前工作目录中,我们应该就可以看到熟悉的 Linux 源代码目录结构了,然后我们可以对这些源代码任意进行修改。 _________________________________________________________________ 回页首 修改现有文件 我们现在可以修改所选择的任何文件。举一个简单的例子来说,我们将修改 docs 目录中的一些内容:添加一条以后可以很容易识别的信息。为了让我的例子更容易试验,我没有选择修改源代码;不过只要您希望,欢迎继续重写整个内核的子系统。 首先,让我们在编辑器中打开一个文件: $ vi ./Documentation/ManagementStyle 显然,我使用的是 vi;不过您当然可以使用自己喜欢的任何编辑器来完成这项工作。在编辑文件时,我在第一段前面添加了一行:“Eli shall be in charge of managing sandwich consumption. See Documentation/Sandwiches for more.” 如果您对自己所做的修改非常满意,并且觉得自己已经准备好将其作为仓库的一个永久部分了,就需要使用下面的命令导入您的修改: $ git-commit Documentation/ManagementStyle 您会被提示说要求提供一个提交消息,它是一个用户生成的注释,用来帮助其他开发人员(也可能是您自己以后)理解刚才的实现到底进行了哪些修改。在我们的例子中,提交消息是一个描述刚才对文档所做修改的短句。 如果您希望检查一下到目前为止工作的状态,可以执行 git-log 来查看本地仓库的历史(它继承了所克隆的仓库的信息)。您的提交消息应该在日志的最上面。 _________________________________________________________________ 回页首 添加或删除文件 但是请等一下!我们还没有添加 Documentation/Sandwiches 文件呢,因此我们需要将其添加到工作目录中,并告诉 Git 何时这个文件已经准备好了。我使用 echo 命令创建了想要添加的文件,因为这只是一个简单的例子而已。同样,您也可以使用自己喜欢的工具。 $ echo "Turkey is superior" > Documentation/Sandwiches 现在我们已经添加了一个文件,接下来需要将这个文件添加到 Git 中,从而让 Git 了解这种变化,然后才能提交这个版本。我们可以通过执行下面的命令来完成这些任务: $ git-add Documentation/Sandwiches $ git-commit Documentation/Sandwiches 如果您添加了多个文件,可以在同一行中的 git-add 命令后面列出这些文件,不过您也不必一次将它们全部添加到仓库中去。如果要删除某个文件,并且没有 git-add 之类的特殊命令;您只需要删除这个文件,然后提交就可以了。 现在应该查看一下 git-log,从而确保到现在为止所做的事情都是正确的。这一次,我们将使用 -p 选项来以单独的补丁格式查看日志。 $git-log -p _________________________________________________________________ 回页首 创建 diff 文件 最后,我们希望生成一个包含您修改后的文件和原文件之间区别的文本文件。这个文件通常是使用 diff 工具创建的,因此就称为 diff 文件。diff 可以帮助我们创建补丁文件(patch file),后者是我们向很多开放源码软件项目发送代码提交时通常使用的方法。有关 diff 的更多内容,请参看下面 参考资料 部分中有关 Kernel.org 的链接。 _________________________________________________________________ 回页首 Git 还可以干什么? 我们可以使用 Git 来管理本地仓库,而不用镜像其他人的工作。例如,如果我们喜欢使用 Git 来管理自己个人对某个开放源码项目贡献的文件,就可以从项目快照中生成一个 Git 仓库。 假设我们已经有了一个名为 release.tar.gz 的标准 release tarball,可以执行下面的命令来创建一个本地的 Git 仓库: $ tar -zxvf release.tar.gz $ cd release $ git init-db 我们可以看到消息说 Git 是 “默认于本地存储区域的”。这些消息都是正常的,说明我们有一个 Git 仓库。 现在我们已经对工作目录进行了初始化,接下来在项目目录中应该会看到一个新目录 .git。为了告诉 Git 我们希望对这个项目中的每个文件都进行跟踪,请执行下面的命令: $ git add . 最后,使用下面的命令将所监视的文件提交到仓库中: $ git commit -a 同样,系统会提示我们输入提交消息。从现在开始,我们就可以在自己的 Git 仓库中使用 Git 所提供的完整功能了,例如对实验特性进行分支,为了追踪回归测试问题而将代码一分为二,并使用常见的版本历史功能。 有关 Git 的分支管理和其他有趣特性的更多信息,请参看 Kernel.org 上给出的 Git 的优秀教程(参见 参考资料 中的链接)。 _________________________________________________________________ 回页首 结束语 现在我们已经知道如何使用 Git 来获取 Linux 内核源代码和其他 Git 管理的项目了,接下来可以选择使用 Git 来管理下一个开发项目。 Git 仍然相对较新,仍然处于不断开发中。其他脚本和工具正在实现用来简化 Git 的使用;请参看 参考资料 中给出的例子。 参考资料 学习 * 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。 * Kernel.org 上有很多很好的入门资源: + A tutorial introduction to Git + Git for CVS users + Everyday Git with 20 commands or so * Kernel Hackers' Guide to git 是一份开始入门的参考资料。 * 学习更多有关版本控制系统的知识: + “开发者和爱好者的 CVS”(developerWorks,2001 年 3 月) + “Subversion 简介:三千年版本控制”(developerWorks,2006 年 6 月) + “StatCVS 提供了对 CVS 储存库活动的深入观察”(developerWorks,2005 年 2 月) * Linux for IBM System z9 and IBM zSeries 是有关 Linux 在大型机系统上的 IBM 红皮书。 * 在 developerWorks Linux 专区 可以找到为 Linux 开发人员准备的更多资源。 * 随时关注 developerWorks 技术事件和网络广播。 获得产品和技术 * 下载 Git 源代码。 * QGit 是一个基于 QT 的 Git GUI。 * 订购免费的 SEK for Linux,这有两张 DVD,包括最新的 IBM for Linux 的试用软件,包括 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere®。 * 在您的下一个开发项目中采用 IBM 试用软件,这可以从 developerWorks 上直接下载。 讨论 * 通过参与 developerWorks blogs 加入 developerWorks 社区。 关于作者 Eli Dow 是位于纽约 Poughkeepsie 的 IBM Linux Test and Integration Center 的软件工程师。他取得了 Clarkson 大学计算机科学与心理学的学士学位和计算机科学硕士学位。他的兴趣包括 GNOME 桌面、人机交互和 Linux 系统编程。他是 IBM 红皮书 Linux for IBM System z9 and IBM zSeries 的作者之一。 建议 _________________________________________________________________ _________________________________________________________________ 回页首 商标 | My developerWorks 使用条款与条件 static.content.url=http://www.ibm.com/developerworks/js/artrating/ SITE_ID=10 Zone=Linux, Open source ArticleID=153361 ArticleTitle=使用 Git 管理源代码 publish-date=08102006 author1-email=emdow@us.ibm.com author1-email-cc= 内容 * 什么是 Git? * 安装 * 获得最新的内核源代码树 * 更新本地 Git 仓库 * 从仓库中导出文件 * 修改现有文件 * 添加或删除文件 * 创建 diff 文件 * Git 还可以干什么? * 结束语 * 参考资料 * 关于作者 * 建议 标签 Help 使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。 使用 滑动条 调节标签的数量。 热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。 我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。 使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。 搜索所有标签 _________________ Search _________________________________________________________________ 热门文章标签 | 我的文章标签跳转到标签列表 热门文章标签 | 我的文章标签 跳转到标签列表 * 关于IBM * 隐私条约 * 联系IBM * 使用条款 网易首页-新闻-体育-NBA-娱乐-财经-股票-汽车-科技-手机-女人-论坛-视频-博 客-房产-家居-应用-教育-读书-游戏-微博 Rss | 免费邮箱-通行证登录 IFRAME: http://g.163.com/r?site=netease&affiliate=tech&cat=article&type=column 590x150&location=1 网易科技 网易 > 网易科技 > IT业界 > 正文 ____________________ [新闻] 搜索 微软继续授权中国政府查看Win7大部分源码 2010-06-02 18:03:13 来源: 网易科技报道 跟贴 0 条 手机看新闻 网易科技讯 6月2日消息,微软中国今日对外宣布,微软同中国信息安全评测中 心正式续签了新一期的政府安全计划源代码协议。根据协议,包括Windows 7, Windows Server 2008 R2在内的微软产品和平台源代码以及相关技术,将可以被 该中心和相关授权机构查看。 该项措施主要是为了提高中国政府对微软安全方面的分析和测评能力。 根据协议,可以被允许查看的产品包括Windows 7, Windows Vista、Windows XP 、Windows Server 2008 R2, Windows Server 2003、Windows 2000和Windows嵌 入式CE 6.0、5.0版、4.2版的专业版源代码包(“PSK”)以及Microsoft Office 专业版2003、Microsoft Office系统中的任何附加产品。 不过协议指的是绝大部分现有版本源代码和相关技术。微软消息未指出哪些不公 开。 该协议的签订也是国家发改委和微软2006年4月共同签署的关于加强软件产业合 作备忘录(二期)的重要组成部分。 IFRAME: http://g.163.com/r?site=netease&affiliate=tech&cat=article&type=tvscre en200x300&location=1 这也是微软政府安全计划源代码协议(GSP)在全球的一个安全合作项目,主要 为了增强各国对微软产品安全性能方面的信心。微软2003年和中国签署第一期政 府安全计划源代码协议。 微软公司全球副总裁Scott Charney表示:“我们很高兴与中国政府签署新一期 的政府安全计划源代码协议。我们将向中国政府提供建立和部署安全计算环境的 信息。” 中国信息安全测评中心主任吴世忠说:“对信息技术产品的安全性实施测试和评 估是中国政府确保信息安全的重要手段之一,而过去的几年合作证明,这个方法 是很有效的。”(王杰聪) (本文来源:网易科技报道 ) 陈柯宇 【已有0位网友发表看法,点击查看。】 转发到微博 关于 微软 Windows 7 的 * 新闻 * 微软承认 Windows Phone 7销量预期出错 2010/05/30 * 微软称Windows Phone 7一年销量达3000万套 2010/05/29 * 微软:2011年要卖出3000万部WP7手机 2010/05/28 * 微软CEO鲍尔默:Windows Phone 7年底上市 2010/05/28 * Windows Phone 7面临谷歌苹果两大敌人 2010/05/24 更多相关搜索: ____________________ [新闻] 搜索 有道 跟贴区 已有条跟贴(点击查看) 跟贴读取中... 点击登录 | 昵称: ____________________ 发言 | 修改昵称 | 我的网易跟贴 | 退出 昵称 | 网易通行证: ____________________ 密码: ____________________ [_] 自动登录 登 录 注册 ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ 网友评论仅供其表达个人看法,并不表明网易同意其观点或证实其描述。 如何使用跟贴 马上发表 修改昵称 关闭窗口 ____________________ 确 定 跟贴昵称修改后,论坛昵称也会变哦 盖楼回复 关闭窗口 点击登录 | 昵称: ____________________ 昵称 | 网易通行证: ____________________ 密码: ____________________ [_] 自动登录 登 录 注册 发言 | 退出 ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ 马上发表 复制收藏 关闭窗口 复制成功,按CTRL+V发送给好友、论坛或博客。 浏览器限制,请复制链接和标 题给好友、论坛或博客。 [BUTTON] 网易科技48小时评论排行 1. 京东售iPhone 4疑似翻新机 苹果检测存私拆痕迹 评论273条 2. 诺基亚效仿苹果在中国试水NSP专卖店 评论178条 3. 索尼最大CD光盘制造厂宣布倒闭 评论162条 4. 富士康未入2010深企百强榜 评论139条 5. 工信部发监管互联网新规 禁止产品互不兼容 评论122条 微博热议 * 大隐于市朱江洪:格力背后真正的大佬 大隐于市朱江洪:格力背后真正的 大佬 * 唐骏学历造假事件特别策划:唐骏读博 唐骏学历造假事件特别策划:唐骏 读博 * 英特尔CEO欧德宁:看好平板电脑市场前景 英特尔CEO欧德宁:看好平板电 脑市场前景 返回网易科技首页 头条推荐 IFRAME: http://g.163.com/r?site=netease&affiliate=163&cat=article&type=banner2 60x20&location=1 * 【新闻】原军委副主席刘华清病逝 享年95岁 * 【娱乐】图集:大S着露肩装谈生子 盼当妈妈 * 【体育】李娜逆转小克 顶级赛首夺冠创历史 * 【财经】央行:20日起上调存款准备金率0.5个百分点 * 【女人】下得厨房最不重要 男人首选"入得睡房" * 【汽车】任志强为民请愿 建议政府取消汽车限购 * 【科技】工信部发互联网新规:禁止擅自不兼容 IFRAME: http://g.163.com/r?site=netease&affiliate=tech&cat=article&type=tvscre en360x250&location=1 热点推荐 IFRAME: http://g.163.com/r?site=netease&affiliate=163&cat=article&type=banner2 60x20&location=2 * 【论坛】老婆屡次和别人同居,我该如何原谅? * 【手机】便宜才是硬道理 千元级诺基亚手机推荐 * 【数码】挑战苹果iPad 联想乐Pad真机图抢先曝光 * 【房产】发改委称楼市调控政策今年将推新方案 * 【游戏】小岛秀夫自爆20岁照片 清秀儒雅有文艺青年范儿 * 【读书】无性婚姻 有了快感我不喊 贾平凹独家全本 IFRAME: http://g.163.com/r?site=netease&affiliate=tech&cat=article&type=logo36 0x150&location=1 科技24小时点击排行榜 标题 * 1富士康未入2010深企百强榜 * 2工信部工商总局发文要求进一步整治手机吸费问题 * 3诺基亚效仿苹果在中国试水NSP专卖店 * 4移动将在5省售iPhone4 苹果代理商和直销商供货 * 5普通快递员月入三千:最恨网购秒杀促销 * 6工信部数据称携号转网用户中超七成转到联通 * 7首部快递业服务国标出台进入倒计时 * 8乐视指责优酷虚假宣传:6部电视剧未买先吆喝 * 9网尚遭遇集体退代 部分代理商颗粒无收 * 10中电信超高端3G手机礼包在京上市 售价13920元 科技热点关注 * 互联网新规:禁止产品擅自不兼容 * 索尼最大CD光盘制造厂宣布倒闭 * 国内水货商已开始预订C版iPhone4 * 京东商城被指销售iPhone 4翻新机 * 世界500强电子厂实习生多过正式工 * 诺基亚芬兰总部裁员人数降至500人 科技名博 * 周宾卿知识产权新规对腾讯给不给力? * 孙永杰孙永杰:iPhone登陆Verizon激起几层浪 * 米晓彬连锁网吧更容易成为洪水猛兽 * 老杳解读集成电路“国六条”促进举措 * 王斌中移动五省开售iPhone4是打心理战吗 * 古永锵超越美国模式就是中国模式 * 王煜全移动电子商务的三大模式 * kevin2_0网易POPO发布2011体验版 科技专题 Android吸费应用举报 Android吸费应用举报 * 2010年终策划:关系 * 特别策划:国产IT当自强 * 独家策划:“Web2.0杀手” * 戴尔收购Compellent * 优酷网纽交所上市 科技推荐 | 每日一站 * Android吸费程序举报 Android吸费程序举报 * AroundTheWay:基于地 基于地点的社交网站 IFRAME: http://img1.126.net/channel1/html/tb_360300_0929.html 科技视频推荐 * 有道词典广告恶搞姜文 有道词典广告恶搞姜文 * 联通视频广告恶搞关羽 联通视频广告恶搞关羽 网易首页-新闻-体育-娱乐-财经-汽车-科技-数码-手机-女人-游戏-论坛-视频- 博客-房产-家居-应用-微博 搜索 ____________________ [新闻] 搜索 Rss 主编信箱 频道热线电话 意见反馈  About NetEase - 公司简介 - 联系方法 - 招聘信息 - 客户服务 - 相关法律 - 网络营销 - 网站地图 网易公司版权所有 (c)1997-2011 [a.gif?a=&c=860010-0509010000] #Atom RSS Home 制作rpm之spec文件小提示 大师? 斯巴达第二季 董昊 linux下poll和epoll内核源代码剖析 最近做项目用了epoll,于是打算深究一下,看了看linux内核的代码,凑 成浅文一篇,欢迎指正。 《poll和epoll内核源码剖析》(一) 《poll和epoll内核源码剖析》(二) 《poll和epoll内核源码剖析》(三) ====== 2010.5.14 ====== 基于qixinkui同学的疑问,我修改了“poll是轮询”这一错误提法(在第 二篇里),然后增加了对EPOLLET的代码分析(第三篇)。poll和epoll的区别在 于fd数量很大时,两者的事件模型效率不同,而NAPI,它是驱动程序的功能,只 会影响某个fd的通知速度,所以这里就不补充讨论了。有了NAPI,对poll 和epoll都一样有利。 ====== 2010.6.8 ====== 问:当你讲sys_epoll_wait()->ep_poll()这个函数时,里面有个for循环 。你说它除了睡觉和判断ep->rdllist是否为空外什么也没干。我的疑问是既然 它睡觉了,也就是阻塞了,它还怎么进行判断?这两者的关系是怎样的? 答:下面的代码是ep_poll里的那个“循环”,1531行的代码是判 断rdllist是否为空的,1539行是睡觉用的。 你所说,睡觉了,也就阻塞了,也就是1539行的schedule_timeout,当前 进程自动放弃CPU,但是,是用的schedule_timeout而不是schedule。用 了schedule,当前进程放弃CPU,直到内核在以后的某次进程调度中重新选择该 进程;而schedule_timeout,那就是经过一个时间后(这里是jtimeout),进程 会重新被唤醒获得CPU,然后从schedule_timeout函数返回。返回后继续循环, 继续判断rdllist是否为空,为空就接着 schedule_timeout...... 说白了,这个“睡觉”,不是永远睡下去,是一定会醒来的,醒来了再接 着判断。不是说他边睡觉边判断。 1524 for (;;) { 1525 /* 1526 * We don't want to sleep if the ep_poll_callback() sends us 1527 * a wakeup in between. That's why we set the task state 1528 * to TASK_INTERRUPTIBLE before doing the checks. 1529 */ 1530 set_current_state(TASK_INTERRUPTIBLE); 1531 if (!list_empty(&ep->rdllist) || !jtimeout) 1532 break; 1533 if (signal_pending(current)) { 1534 res = -EINTR; 1535 break; 1536 } 1537 1538 write_unlock_irqrestore(&ep->lock, flags); 1539 jtimeout = schedule_timeout(jtimeout); 1540 write_lock_irqsave(&ep->lock, flags); 1541 } 1542 __remove_wait_queue(&ep->wq, &wait); 1543 1544 set_current_state(TASK_RUNNING); 1545 } 相关文章 * [kernel] linux在多核处理器上的负载均衡原理 - 07 20, 2010 * [kernel] 在release方法里,而不是flush方法里释放 - 06 01, 2010 * [linux] tail和poll无关 - 06 01, 2010 分类 * 操作系统 Tags * 内核 * epoll * linux By DongHao on 08 12, 2009 3:25 PM | Permalink | Comments (4) | TrackBacks (0) 0 TrackBacks Listed below are links to blogs that reference this entry: linux下poll 和epoll内核源代码剖析. TrackBack URL for this entry: http://www.trucy.org/cgi-bin/blog/mt-tb.cgi/2784 4 Comments hoterran said: 写的真好,看了很多遍了~~ 11 19, 2009 4:01 PM DongHao Author Profile Page said: 过奖了,流水账而已 11 19, 2009 6:40 PM qixinkui said: poll 是自己挨个去问每个fd“好没有?”、“好没有?“(poll),而epoll是 给了每个fd一个命令“好了就调我的函数!”,然后就去睡了,等着设备驱动通 知它....epoll的方法显然更英明、更高效。 请问,怎么我看过文章之后,感觉 poll 和 epoll 都是使用了回调函数的方式 ,poll并不是轮询的方式(“好没有?”“好没有?”)? 另外,对于epoll 支持的 edge trigger 方式的高效原因所在也没有讲出来。是 否有新的研究可以解释一下这部分的内容? 另,对于kernel 驱动程序的 NAPI架构(结合使用了中断和轮询),对于这里的 性能有没有什么影响? 谢谢,麻烦楼主作答。 05 12, 2010 12:28 AM mice said: 写得不错,楼主对代码研究很深入,讲解要点准确到位。顶!! 10 2, 2010 12:09 PM 留言: 姓名 ______________________________ 邮件地址 ______________________________ 您的主页 ______________________________ [_] Remember personal info? 留言 __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ Preview Submit 关于文章 This page contains a single entry by DongHao published on 08 12, 2009 3:25 PM. 制作rpm之spec文件小提示 was the previous entry in this blog. 大师? is the next entry in this blog. Find recent content on the main index or look in the 存档 to find all content. 订阅 订阅 我要啦免费统计 #docs.sun.com: Recently Published Skip to ContentSun and OracleChannel SunHow to BuyLog InEnglish Sun Microsystems Home Page docs.sun.com Home > Sun Studio 12 Collection - Simplified Chinese > Sun Studio 12:Fortran 用户指南 > 4. Fortran 95 功能和差异 > 4.1 源语言功能 Sun Studio 12:Fortran 用户指南 ______________________________ Search Search Help View this book in: * Other Languages * English * 日本語 Contained Within * Sun Studio 12 Collection - Simplified Chinese Find More Documentation * Browse Documentation Titles * Browse Product Documentation Featured Support Resources * Sun Training Courses * BigAdmin System Admininstration Portal * Sun Support Center * Sun Solve [ic_pdf.gif] Download this book in PDF (1657 KB) * Previous: 4. Fortran 95 功能和差异 * Next: 4.2 数据类型 4.1 源语言功能 Fortran 95 编译器提供 Fortran 95 标准的以下源语言功能和扩展。 4.1.1 续行限制 f95 允许 999 个续行(1 个初始行和 999 个续行)。对于固定格式,标准 Fortran 允许 19 个续行;对于自由格式,允许 39 个续行。 4.1.2 固定格式源代码行 在固定格式源代码中,行的长度可以超过 72 个字符,但忽略第 73 列以后的任何内容。标准 Fortran 95 仅允许 72 个字符长的行。 4.1.3 制表符格式 f95 固定格式源代码文本的定义如下: * 如果第 1 列至第 6 列的任一列中有制表符,都会使该行成为制表符格式的源代码行。 * 制表符前面可以有注释指示符或语句编号。 * 如果制表符是第一个非空字符,会出现以下情况: + 如果制表符后面的字符不是非零数字,则制表符后面的文本是初始行。 + 如果第一个制表符后面是非零数字,则该行是续行。非零数字后面的文本是语句的下一个部分。 对于固定格式,f95 的缺省最大行长度是 72 列;对于自由格式,则为 132 列。使用 -e 编译器选项,可将固定格式源代码中的行扩展到 132 列。 示例:左侧的制表符格式源代码的处理方式如右侧所示。 !^IUses of tabs ^ICHARACTER *3 A = ’A’ ^IINTEGER B = 2 ^IREAL C = 3.0 ^IWRITE(*,9) A, B, C 9^IFORMAT(1X, A3, ^I1 I3, ^I2 F9.1 ) ^IEND ! Uses of tabs CHARACTER *3 A = ’A’ INTEGER B = 2 REAL C = 3.0 WRITE(*,9) A, B, C 9 FORMAT(1X, A3, 1 I3, 2 F9.1 ) END 在以上示例中,"^I" 代表制表符,以 "1" 和 "2" 开头的行是续行。显示此代码的目的在于说明各种制表符情形,而不是提倡任一样式。 f95 中的制表符强制将行的其余部分填充到第 72 列。如果制表符出现在延续到下一行的字符串内,这可能会导致意外结果: 源文件: ^Iprint *, "Tab on next line ^I1this continuation line starts with a tab." ^Iend 运行代码: Tab on next line this continuation line starts with a tab. 4.1.4 采用的源代码格式 f95 采用的源代码格式取决于选项、指令和后缀。 具有 .f 或 .F 后缀的文件采用固定格式。具有 .f90、.f95、.F90 或 .F95 后缀的文件采用自由格式。 表 4–1 F95 源代码格式命令行选项 CAPTION: 选项 操作 -fixed 将所有源文件解释为 Fortran 固定格式 -free 将所有源文件解释为 Fortran 自由格式 如果使用 -free 或 -fixed 选项,则它覆盖文件名后缀。如果使用 !DIR$ FREE 或 !DIR$ FIXED 指令,则它覆盖选项和文件名后缀。 4.1.4.1 混合格式 允许混合使用某些源代码格式。 * 在同一个 f95 命令中,一些源文件可以是固定格式,而另一些源文件可以是自由格式。 * 在同一个文件中,可以通过使用 !DIR$ FREE 和 !DIR$ FIXED 指令将自由格式与固定格式混合使用。 * 在同一个程序单元中,可以将制表符格式与自由格式或固定格式混合使用。 4.1.4.2 大小写 缺省情况下,Sun Fortran 95 不区分大小写。这意味着,变量 AbcDeF 的处理方式与将其拼写为 abcdef 时相同。要让编译器区别处理大写字母和小写字母,请使用 -U 选项进行编译。 4.1.5 限制和缺省值 * 一个 Fortran 95 程序单元最多可定义 65,535 个派生类型和 16,777,215 个不同的常量。 * 变量和其他对象的名称最多可包含 127 个字符,标准长度为 31 个字符。 * Previous: 4. Fortran 95 功能和差异 * Next: 4.2 数据类型 * News Center * About Sun * Contact Sun * Terms of Use * Privacy * © 2010, Oracle Corporation and/or its affiliates #漫天星河千帆舞 (RSS 2.0) 漫天星河千帆舞 (Atom 1.0) 香港新浪網 MySinaBlog 精選 話題 工具 [EMBED] 新浪網 - MySinaBlog 漫天星河千帆舞 天接雲濤連曉霧,星河欲轉千帆舞。彷彿夢魂歸帝所。聞天語,殷勤問我歸何處?           我報路長嗟日暮,學詩謾有驚人句。九萬里風鵬正舉。風休住,蓬舟吹取三山去。 主頁 | 管理面版 | 文章目錄 | 留言簿 | 資料夾 « 上一篇 | 下一篇 » 天秤的兩端:源語言與目標語言 星河千帆 | 1st May 2007 | 譯論 | (1240 Reads)   早前寫了一兩篇關於動漫翻譯的文章,馬上就惹起批評聲音。   我在《硬譯者,爛譯也》中,指出直譯、硬譯,是死譯、爛譯,即使能逐字譯出字面意思,卻譯不到原作者要表達的東西,是不可信。並以繞口令為例,斥問硬譯派擁躉會否認為把「入實驗室撳緊急掣」譯成「Enter a laboratory for pressing an emergency button」才算正確。豈料,竟然有人回答「是」,認為「只要在旁邊註明原文是繞口令便可」。   我在《淺談中文字幕組的常見問題》中,指出一些字幕組普遍會犯的硬譯錯誤,例如把日文「電車」搬字過紙,而不翻譯成中文「(電氣化)火車」。豈料,有些字幕組的人馬上出來,說我批評字幕組就是不理性,又極力聲稱日文「電車」譯作中文「電車」才是正確。(註:本部落格中沒有那論戰。要看那些戰帖,請到最先刊出該文的《知日部屋》。)   出現這種情況,是因為有人把源語言(original language或source language),捧到一個極高的(近乎是神聖的)位置,並且看不起目標語言(target language)。   翻譯的任務,是把文本由源語言轉為目標語言。譯者就像是一個拿着天秤的人。要譯得好,就要盡力令天秤平衡,不能忽視任何一方。   忽視源語言,就會把文本的原意理解錯誤。翻譯出來的東西,自然會出錯。但忽視目標語言,輕則不能把原文的意念、神髓傳達給看譯文的受眾,受眾無法感受到該文精彩之處;重則令受眾連基本意思都看不明白,把他們嚇跑。   從上述那些反對者的言論,可見他們並不重視目標語言。   像那個主張連繞口令等都硬譯的人,就自稱是「硬譯的愛好者」,並指自己「已看了很多年的動漫畫,對日文已有一定的認識,特別是對日文的語氣的表達方式。但無奈自己的日文程度仍未能直接睇日文動漫畫,必需睇翻譯才能明白全部內容,所以用本文作者所說的硬譯的翻譯方式,可以比較容易估到原作所想表達的語氣。」   由此可見,他不在乎譯文是否能讓受眾流暢地理解故事的對白、內容,也不在乎譯文是否符合目標語言的語法、用法,甚至無視字幕翻譯應精煉,盡可能避免用註釋等要求。他在乎的,只是譯文能否在字面上百分百貼近原文,準確地作為原文的註解。換言之,他要的並不是「翻譯」,而是「有人幫他查好了字典,把該日文詞彙的最合適註解抄寫出來」。   若譯文的服務對象,只是供這一種人作學習用途,那麼故意硬譯,作「人肉字典機」,亦無可厚非。然而,這種譯文的服務對象範圍很窄,不適宜給一般想了解劇情的觀眾看。對一般人來說,這種硬譯會令他們費煞思量。   不知大家有沒有到入境事務署申請護照的經驗?看着表格上的「人肉字典機」式翻譯(例如:本人或吾等謹此聲明,在過去七年或更早的時間,本人或吾等每年於本地所逗留的時間為一年裏的三分之二或以上,並以本地作居所之所處地……),你會否不頭痛?想不想當場撕碎那表格?   要是給一般受眾看到這種「人肉字典機」式翻譯,大概沒人會有心機繼續看下去。不論原作多出色、多吸引,它已遭譯者謀殺。   至於那數名字幕組的人,則更令我大惑不解。日文和中文是兩種不同的語言,即使兩者也有漢字,即使有外貌相同的字詞出現,也不代表它們必然是等義的。日文的「勉強」,在中文裏是「學習」或「用功」;日文的「心配」,在中文裏是「擔心」;日文的「無惨」,在中文裏是「悲慘」或「殘酷」;日文的「留守」,在中文裏是「外出」……這樣簡單的道理也不知曉,如何能保證觀眾看過他們的字幕翻譯後,能看得明白?   也許他們不是不知曉,只是像《電車男》這種未經翻譯的「譯名」流傳了,觸動了他們那維護神聖原文的心理。字幕組都是自發性參與的,當中不乏愛日文愛得發燒的人,他們雖然對「理解原文」這工作做得很認真,卻會失衡,過於着重源語言而忽視目標語言。有些人甚至會想:「既然這詞語在日文也是漢字,要大家明白、學會這用漢字寫的日文詞彙,又有何難?」   因此,他們寧可無視「不同語文的同形詞未必同義」這常識,也要捍衛這個「未經翻譯的翻譯」。他們忘記了自己的任務是「翻譯」,而不是「傳播源語言(日文)之威權」,不惜扭曲目標語言的詞義、用法,也要他在外形上向源語言「投誠」。   於是,螢幕上的電車男在電腦前鍵入文字,說:「我在『電車』上遇到愛瑪仕。」觀眾誤以為是在那種與其他車輛一齊使用路面的輕軌電車(即tram,香港人叫「叮叮」),而不知道是鐵路的電動列車,並不為奇。在《維基百科》的「香港維基人佈告板」中,討論「電車」、「火車」之爭時,就有討論者發言,指出他們確曾如此誤會過。   繼續搬字過紙吧!繼續不翻譯吧!日後受眾看到字幕組出產的「無惨」、「留守居」、「一直線」、「切手」、「怪死」時,感覺太怪異,搔破頭顱也想不明白。之後,受眾誤解了原作,又或對原作興趣盡失,不再觀看。這情況可否稱為「翻疫『怪』死症」? 參閱: 和也 - 夏蟲不可語冰 mayurina - 讀翻譯相關書籍~~筆記~~~~ 留言(5) | 引用(0) [1] 過度「忠於原文」的直譯日文,勢必引至日文漢字詞語在年輕一代流行使用,代替了中文原來已有的詞語。 這也是語言污染。 [引用] | 作者 chris | 2nd May 2007 | [舉報垃圾留言] [2] 我覺得近來香港以為沿用日本漢字, 是「潮」的表現. 所以可能那些譯者不是因為要「忠於原文」, 而是覺得搬字過字可以表現得很潮. 印象中有一本雜誌早前用得很多日本漢字, 惹來批訐, 我不知道現在有沒有改善. 也許就是這個目的吧. [引用] | 作者 紫熊 | 3rd May 2007 | [舉報垃圾留言] [3] 如兩位所言,即是某部分翻譯者,已忘記他們的崗位和責任了。 [引用] | 作者 星河千帆 | 4th May 2007 | [舉報垃圾留言] [4] 我覺得日文比較好的人很少會這做法 反而語文掌握不好的會易犯下這種錯... [引用] | 作者 blue | 16th May 2007 | [舉報垃圾留言] [5] 美人がいいっぱい! 出会い 人妻探し パートナー探し メル友探し セックスフレンド探し 不倫探し 逆援助探し 恋人探し 結婚探し 合コン探し 恋愛探し 熟女探し 愛人探し 援交探し スタビ探し セフレ探し ご近所探し 友達探し ギャル探し 彼女探し 彼氏探し [引用] | 作者 出会い | 19th Dec 2008 | [舉報垃圾留言] » 我要回應 文章分類 * 漫談 [5] 訂閱這個分類 (RSS 2.0) * 譯製 [4] 訂閱這個分類 (RSS 2.0) * 譯論 [13] 訂閱這個分類 (RSS 2.0) * 破偽 [6] 訂閱這個分類 (RSS 2.0) * 詞探 [1] 訂閱這個分類 (RSS 2.0) 站內搜尋 __________ 搜尋 網站連結 1. 漫步譯林 譯豚G家 子貓物語 DGE紅白部落 翻譯生活二三事 翻疫終結者 翻譯工作坊 潛艇日誌 牢騷絮語 紫熊部屋 雙語廣播(齊學中英文) 2. 文藝延伸 絕對文化 藍色一格格 3. 友好連結 暗黑熱血 阿唯管家部落格 逗‧貓‧棒 網誌摘要 * 訂閱這個網誌 (RSS 2.0) * 訂閱這個網誌 (Atom 1.0) 個人資料 星河千帆 姓名 : Hoshikawa Chiho 暱稱 : 星河千帆 性別 : 男 生日 : 1980-04-01 職業 : 教育及學術研究 好友名單 新浪字典 請輸入中文或英文單字: __________ 查看 最新留言 留言簿 訂閱留言RSS (RSS 2.0) (按此留言) * Leo (doraemonserv): CUHK students ... * vienna: 你好! 我是一個中七學生,現正進... * doraemonserv: I am a boy as we... 文章留言 * 大二郎: 簡単リンク集PinLink 簡... * 勇次: 群馬県出会い系サイトご近所の理... * よし: Mコミュ 女子高生出会い... * りき: 愛人出会い 爆乳出会い ... * イケてるサイト: 多くの猛者が集い派閥や一匹狼が常... * 援デリを楽しみたい方: ギャル援デリ|OL援デリ|人妻援... * 職場だけではない友達やセフレ: 早急に利用する事をオススメ * どうしてもセフレ: 業界トップクラスの会員数を誇る * 利用できるセフレ: セフレな関係も維持できます * セフレ大学生: 割り切った交際を 本網誌刊登之內容,皆由作者所提供,不代表新浪網之立場 請尊重知識產權 IFRAME: /include/top.asp?imgUrl=index IFRAME: http://beijing.neworiental.org/lessonsearch/search.aspx 搜索 __________ 搜索 开始时间: __________ 结束时间: __________ 推荐文章 · 欢迎参加新东方网“有奖竞答”... · 新东方网站“雅思专题”全新改... · 新东方网站“新·新概念专题”... · 汉语很智慧:从“新三”外来词... · 双语盘点:儿童节必看的十部非... · 西安新东方学校英语背诵大赛精... · 双语盘点:六一儿童节的两种来... · 澳洲留学生人数骤减 将致20亿经... · 申请人数增加三成 美国名校提高... · 关注:国内就业情况渐成出国留... · 新东方名师做客腾讯详谈高考语... · 留学英国签证申请或将延迟一至... · 世博会:返璞归真,重拾自然智... · 忻昀:边学边游——别样的留学... · 上海新东方考研盛大年会圆满落... · GRE高分心得:战略上藐视,战术... · 新东方汪海涛:2011年考研英语... · 谢强:让人心甘情愿去追随的“... · 兰州泡泡少儿:“我为交警叔叔... · 全角度解读新高考时代留学“众... · 我给国际巨星丽芙·泰勒做口译 · 这陌生而熟悉的城市是无法割舍... · 香格里拉之行:和远古的近距离... · 500强校园招聘大学生不知道的几... · 北京新东方学校设立SSAT奖学金... · “家庭教育中国行” 关爱孩子健... · 冲刺高考英语,别让作文“玩”... · 合肥:北美留学高峰论坛风云再... · 新东方雅思中国行深圳站成功举... · 新东方高考温馨提示:放松心情... [left.gif] [right.gif] 汉语很智慧:从“新三”外来词翻译说起 _________________________________________________________________ 2010-06-02 11:41:20 作者:冯舸 来源:上海新东方学校新概念部 点击数: 从《新概念英语》三册中外来词的吸收看汉语的智慧 《新概念英语》三册第十课The Loss of the Titanic中出现了一个地名Southampton,即泰坦尼克号的出发地南安普顿。这个单词虽然简单,但其前半部分进行意译,后半部分进行音译的翻译处理方式却值得我们进一步思考。      任何一种重要的现代语言在其发展的过程中,都会不可避免地吸收一些外来词来丰富自己。由于历史和政治的原因,英语中吸收保留了大量的法语词,我们的近邻日本在吸收外来词的时候则是“大刀阔斧”,直接根据读音用片假名写出来了事。而汉语在吸收外来词的时候,则显示出了更多的智慧,不完全依赖音译。这些外来词在经过很多精妙的处理之后,往往能完美地融入汉语的世界,找到一种“宾至如归”的感觉。现在,我们就来一起看一下,汉语吸收英语单词有哪些方式吧。      首先就是刚才提到的所谓一半音译、一半意译的方式。这类方式在翻译英语的地名时尤其有用,像将New Delhi翻译为新德里(印度首都),将New Orleans翻译成新奥尔良(马上想到烤鸡腿堡),将North Carolina翻译成北卡罗来纳(飞人乔丹上大学的地方)都是这种思路的体现。当然这种方式也不局限于地名的翻译,像我们现在已经离不开的因特网(internet),著名的咖啡连锁店星巴克(Starbucks),在翻译的时候也都借鉴了这种方式,并且深入人心。这种方式体现了保留源语言信息的一种努力,汉语对应词因为加入了汉语的元素,不会像全音译词那样显得陌生,因而也就容易被大家所接受。      第二种方式是完全意译。顾名思义,也就是将源语言词汇的各个部分都精确对译到汉语当中,从而组成一个新词,这种方式可以说将第一种方式又向前推进了一步。地处北欧极地的岛国Iceland就被我们原封不动地翻译成了“冰岛”,这在国家名称的翻译中是个比较罕见的例子,但“冰岛”二字不仅忠实,还很好地概括了这个国家基本的地理特征。此外,我们还将blackboard翻译成黑板,将supermarket翻译成超级市场(当然现在一般都说超市了),将Microsoft翻译成微软。而Bluetooth则被某高人直接翻译成“蓝牙”,一开始引发很多争议,但这一看似怪异的说法正好迎合了其作为高科技给人带来的新鲜感,现在也渐渐被人们接受了。完全意译的好处显而易见,就是能完整保留源语言词汇的意义,让我们能体会到和英语使用者一样的感受。但可惜的是,由 于两种语言之间先天的语法和文化差异,并不是所有的词都可以用这种方式翻译引进,在这一招行不通的时候,我们就只能采用另外两个“高招”了。      音译加注是吸收外来词汇的另外一种有效方式,拿一个具体的例子来说,英语中beer被翻译成中文变成了“啤酒”。beer这词对汉语来说完全是新鲜事物,没有现成的词汇进行对应,于是只能根据读音先译出一个“啤”字。但这孤零零的一个字显得非常怪异,容易让人感到不知所云,考虑到这些因素,我们就采用了加注的方式。既然beer指的是一种酒,我们干脆就添加一个“酒”字以表明这个词的属性,这样不仅意义明了,而且很符合现代汉语双音节化的趋势,读起来没有丝毫的怪异之感。有趣的是,很多食物名称的翻译都用到了这种音译加注的方法,比如在pizza对大多数中国人还是个陌生概念的时候,我们将其翻译为“披萨饼”,同样地hamburger被翻译为“汉堡包”,wafer被翻译成“威化饼”。当然现在这类西式食品早已为大家所熟知,最后那 个表示属性的字也就完成了它的历史使命,在大多数人的语言中消失了。这种音译加注的翻译引进方式很好地体现了语言变动不羁的本性及其和社会时代的一种互动关系。      最后还有一种方式叫做音译加意译,或者说是音译和意译融合。前面所说的一半音译、一般意译的方式中有一条泾渭分明的界限,可以分别看出音译和意译的部分;而在音译和意译融合的情境中,整个词既有音译的感觉,也有意译的成分,可以说是一种非常高超的翻译技巧。比如将humour翻译为“幽默”,将gene翻译成“基因”,将shock翻译成“休克”,将utopia翻译成“乌托邦”,将shampoo翻译成“香波”,将hacker翻译成“黑客”,将vitamin翻译成“维他命”,将club翻译成“俱乐部”等等,这些对应的汉语词都是在模仿原词发音的基础上,以一种非常微妙的方式,暗示了这个词的内涵。这些堪称经典的翻译,久而久之已经完全融入了汉语,甚至于几乎让人感觉不出这些词是外来的。值得注意的是,这一高超的翻译技巧在品牌名称的翻译中也得到 了很好的应用,往往起到既保留品牌特质,又暗示产品用途的神奇功效。比较成功的例子有:可口可乐(coco-cola)暗示了饮料给人带来的感觉,高露洁(Colgate)暗示了用这种牙膏所带来的效果,而奔驰(Benz)和波音(Boeing)则都暗示了其产品的惊人速度。瑞典知名家具品牌IKEA,来到中国摇身一变成了“宜家”,这一翻译不仅保留了原来的读音,暗示了其家具品牌的性质,还遥指《诗经》中“之子于归,宜室宜家”的典故,可谓一箭三雕,成就了一个不可复制的经典。      以上就是除了音译方式之外,汉语吸收英语外来词的几种基本思路,它们在不同的场合各显神通,相互补充,充分体现了汉语“海纳百川,有容乃大”的特质。学习这些外来词的处理方式,不仅有利于我们扩充我们的词汇量,也有助于我们有朝一日在翻译实践中大显身手,创造经典。(编辑:胡慧) 新东方“新·新概念专题” IFRAME: http://www.neworiental.org/xdfjs/vote.aspx?infoid=514622 相关文章 [xw36.gif] 北京新东方“新课标·小学新概念”系列课程 2010-04-09 [xw36.gif] 新东方“新·新概念”专题 2010-01-13 [xw36.gif] 从《新概念英语》第三册29课谈黄西的幽默 2010-05-27 [xw36.gif] “您好!请不要挂机,您拨打的电话……” 2010-05-27 [xw36.gif] 十年磨一剑,《新概念英语》从“时尚”走向“实用” 2010-05-26 [xw36.gif] 剖析一课“新概念” 开启英语高分之门 2010-05-25 [xw36.gif] 名校提高“门槛” 证书、实力缺一不可 2010-04-30 [xw36.gif] 世博口语公共服务篇:指路、纪念品、用餐 2010-04-29 [xw36.gif] 新概念:培养英语“达人”重在合理规划 2010-04-15 [xw36.gif] 学习英语的最高境界是什么?是习惯! 2010-04-14 【版权及免责声明】【打印】 【关闭】 IFRAME: \include\newbottom.htm 广州大学语言学论坛's Archiver 广州大学语言学论坛 >> 计算语言学 >> 067期末 >> 09邱韵婷 米虫 发表于 2009-6-11 09:35 09邱韵婷 [i=s] 本帖最后由 米虫 于 2009-6-18 09:47 编辑 [/i] 09邱韵婷~~~~~~~~~~ [b][size=5]网上机器翻译及其发展新趋势[/size][/b] 米虫 发表于 2009-6-19 08:53 传统的机器翻译方法 传统机器翻译从总体模式上可以分为三类:直接翻译法(Direct Translation)、中间语言法(Inetrlingual approach)以及转换法(Transfer approach)。 直接翻译从源语言的表层句子出发,将单词或固定词组直接置换成目标 语言的对应成分。这种方法对翻译过程的认识过于简单化,基本上属于一种过时 的方法。 中间语言法把源语言经过分析转换成一种对所有语言都适合的一种句法 ―语义表示,从这种表示可以生成任何一种目标语言。在设计多种语言互译的机 器翻译系统时,这种方法在理论上是非常经济的。 转换方法采用两种内部表达并按三个阶段进行翻译,第一个阶段把源语 言转换成源语言的内部表达,第二阶段把源语言的内部表达转换成目标语言的内 部表达,第三阶段再根据目标语言的内部表达生成目标语言。当今许多实用的系 统都采用了这样的总体结构。 从本质上讲,机器翻译系统的不同之处主要是各个系统对翻译所需要的 分析(或理解)深度有不同的意见。直接翻译法认为不需要深层次的源语言分析, 在源语言句法结构未知的前提下就可以翻译,转换法认为,要进行翻译,源语言 的句法结构就应该提前得到,而中间语言法则认为需要更为彻底的源语言分析。 实际上,即使采用同一种总体模式的不同实际系统,对分析深度的处理也是有所 不同的。 米虫 发表于 2009-6-19 08:54 困难和对策 机器翻译的困难主要是语言的歧义消解问题,歧义现象是自然语言的显 著特点。语言单位无论从小到大都存在歧义,并且在语法、语义、语用每个层面 上都有表现。这些问题决定了目前机器翻译的译文质量必然是不能令人满意的, 因此,要想获得高质量的译文,必须采取其它的对策,下面是目前一些机器翻译 系统采用的主要策略。 (1)在限定的领域内进行翻译 这种方法一般也称为‘子语言’法(sublanguage)。这种方法不追求系统 能在所有领域获得高质量译文,而只希望在翻译某一狭窄的专业领域的文本时获 得高质量的译文。实际上,当今许多机器翻译系统属于这一类型,这类系统的词 典和规则无需覆盖本领域之外的语言现象。 (2)利用受限语言作为输入 这种方法一般称为‘受控语言’法(controlled-language)或‘受限语言 ’法(constrained-language,restricted language),这种方法通过在词汇、句 法结构方面对自然语言加以限制,以力图避免机译系统难以处理的语言现象,这 种方法要求,交付系统翻译的文本必须遵从受控语言的规定,因而,翻译不满足 受控语言规定的文本,事先要经过熟悉受控语言知识的人员改写。卡耐基-梅隆 大学的基于知识的机器翻译系统KANT 定义的KANT受控英语(简称KCE)也是这种方 法的一个实例。KCE引入三方面的限制因素:限制词汇,用以减少词汇歧义、词 汇复杂性;限制句子类型,用以限制源语言分析阶段的分析复杂性;使用标准通 用置标语言SGML。 (3)人机交互式机器翻译 这种方法是以牺牲全自动的要求而获取较高质量的译文。实际上所有的 机器翻译系统都需要人工干预,不过,大部分系统的人工干预仅限于译前编辑、 译后编辑,尤其是译后编辑。更为深入的人机交互式翻译研究追求的目标是允许 用户在翻译的任何一个阶段都可以参与。这类研究可以根据人机交互发生的阶段 分为: (a)交互式分析,用户帮助系统得出正确的源语言结构,尤其是复杂句子 ,对多义词进行排歧等。 (b)交互式转换,用户参与选择与源语言结构等价的目标语言结构,排除 不适当的转换。 (c)交互式生成,用户协助产生流畅译文,用户在省略、指代、主题化方 面对生成提供指导,交互式生成应该包含译后编辑。 实际上,很多系统并不单纯允许一种类型的交互,而是同时使用多种交 互类型。交互式系统也称为人助机译(Human Assisted Machine Translation简 称HAMT)系统。 子语言、受控语言以及交互式翻译虽然提高了译文质量,但其带来的限 制条件在许多应用场合并不满足,有时也并不必要。在许多情况下,译文并不是 用于出版,例如,一个科技人员只是想浏览一下自己领域的外文文献,只是想选 择自己感兴趣的文章,这时译文内容只要从总体上能够把握即可。许多应用场合 对翻译效率要求很高,大量文献要在短时间内完成,这些情况下只好接受低质量 的译文。 米虫 发表于 2009-6-24 12:52 从广义上来说,网上机器翻译主要有如下几个方面: (1)基于WWW的网上机器翻译。它是指由软件来实时翻译WWW网页,或是客户将所 要翻译的网页的URL地址(Uniform Resource Locator,在Internet的WWW服务程 序上用于指定信息位置的表示方法)发送到提供服务的服务器,服务器翻译完后 再回送。由于目前在Internet上WWW服务所占的比重越来越大,所以可以认为这 种类型的网上机器翻译在目前及今后一段时间内将是最重要的。而其中前一种由 于其实时性,将更应快速发展。 (2)基于E-mail的网上机器翻译。它是由用户将需要翻译的资料用E-mail发给提 供此项服务的公司,等翻译完以后再用E-mail发回给用户。这实际上是非严格意 义上的“网上”机器翻译。 (3)基于语音的网上机器翻译。这在目前还只是在实验室阶段,仅仅做到面对一 定主题 域。但由于Internet带宽的不断增长和多媒体技术的快速发展,以及当前对更加 友好的人机界面的急迫要求,可以预料,这种类型的网上机器翻译将很快走向应 用,这方面的研究也己逐渐成为热点。 米虫 发表于 2009-6-24 12:53 三个影响较大的网上机器翻译系统: SYSTRAN提供的兔费网页翻译服务、Globalink开发的名为Web Translator翻译软 件、以及CompuServe的环球公众论坛(World Community Forum) 。 SYSTRAN公司开发机器翻译系统的历史悠久而且硕果累累。今天,欧共体委员 会(Commission of the European Community)已使用SYSTRAN开发的机译系统, 实现了其六种官方语言:英、法、德、意、西班牙和葡萄牙文的互译。据估计, 欧共体每年约有35%到40%的经费用于“语言问题”开销。SYSTRAN这种实现不同 语种相互机器翻译的成果对欧共体的运作注入了高效润滑剂。 美国国家情报中心的分支机构遍布全球,对收集到的情报要及时处理,以供 决策者作决策依据。依靠 SYSTRAN的机器翻译软件,辅以网络技术,国家情报中 心已经实现了线上翻译。国家情报中心拥有一个名为“开放资源信息服务 ”(Open Source Information Service)的网络。情报工作者只需要把要翻译的 文本提交给该网络,该网络使用9种由SYSTRAN开发的不同语言对机器翻译软件完 成翻译工作,然后把结果回送给情报提交者。“开放资源信息服务”网络与一个 叫 Interlink的高级机密网络连接,而后者则直通五角大楼和中央情报局。1994 年,一共有3000个用户、35个情报机构使用“开放资源信息服务”网络,实现了 情报的线上翻译。 1996年,SYSTRAN推出了世界上首项线上环球网网页机器翻译服务,目前该项服 务只限于英语与德语、法语、葡萄牙语、意大利语和西班牙语的互译,以及俄语 到英语的单向翻译。用户只需键入要翻译文件所在的网页地址,选择目标语言语 种,键入用户电子邮箱地址。只要被翻译的文本不超过10K字节,此网页机器翻 译系统会兔费为用户翻译文本并随后把译文送回给用户。此系统是以客户/服务 器( Client/ Server)体系为基础开发的,由一台名为SYSTRAN的翻译服务器 (Translation Server)执行翻译工作。此台服务器同时运行11种语言对翻译软件 ,接受来自全球各地的翻译服务请求。用户在提交要翻译的文本后,视源文本长 度及服务器繁忙程度,会有不同程度的延迟,有时甚至会中断服务请求。 米虫 发表于 2009-6-24 12:53 Globalink公司创建于1989年。目前该公司的软件仅实现西班牙语、法语、德语 、意大利语与英语的互译。据Globalink发表的资料称,全世界范围内靠机器翻译 软件完成的语言翻译总额,Globalink系统占了80% ,可见在机器翻译市场,该公 司是一个举足轻重的角色。 Globalink目前提供一种叫做Web Translator的线上机器翻译软件。该软件运行 在SUN公司出品的 Netscape和微软的Explorer上,能够实现互联网上的西班牙文 、法文、德文与英文信息的线上实时互译。这意味着一个只懂英文的用户在浏览 用法文书写的网页信息时,只要运行该软件,便能生成该网页信息的英文译文。 另外,Web Translator为用户提供了可对电子词典编辑的功能。用户能够添加电 子词典中不存在的单词与短语,从而提高翻译效率。 米虫 发表于 2009-6-24 12:54 除了上述两种系统外,CompuServe公司提供了环球公众论坛(World Community Forum)线上翻译服务。CompuServe拥有三百万用户会员,遍布世界150多个国家 ,是全球最大一家信息服务公司。它于1994年引进Intergraph的软件系统并开拓 线上机译服务,1995年2月创立环球大众论坛,为其成员交流政治观点、发表对 交互文化的个人见解、以及发布体育旅游信息提供了方便。目前,论坛参与者可 用英、法、德、西班牙语中的任何一种语言在网上交谈。 页: [1] 查看完整版本: 09邱韵婷 Powered by Discuz! Archiver 7.0.0 (c) 2001-2009 Comsenz Inc. 欢迎光临中国最具影响力的权威学术论文下载网站,CSSCI来源期刊论文发表中 心,中国学术论文免费下载门户网站高级搜索|网站地图|TAG标签|RSS订阅|加入 收藏 CSSCI学术论文网:中国最具影响力,规模最大的核心期刊权威学术论文免费下载网站 IFRAME: http://www.csscipaper.com/proxy.html?id=87375 * 论文主页 * 哲学宗教 * 政治法律 * 经济理论 * 管理科学 * 中国经济 * 金融财会 * 课程教学 * 教育理论 * 社会科学 * 体育论文 * 新闻传播 * 档案出版 * 语言文字 * 文化研究 * 艺术理论 * 文艺文学 * 历史论文 * 地理考古 * 大学学报 * 核心期刊 * 读书杂志 * 博士论文 * 代找论文 IFRAME: http://unstat.baidu.com/bdun.bsc?tn=cnpolitics_pg&cv=0&cid=1129863&csi d=541&bgcr=ffffff&urlcr=0000ff&tbsz=300&sropls=2,99&insiteurl=csscipap er.com%3Bwww.sizhenglunwen.com%3Bwww.cnpolitics.net&defid=99&kwgp=0 IFRAME: http://spcode.baidu.com/spcode/spstyle/style2878.jsp?tn=cnpolitics_sp& ctn=0&styleid=2878 IFRAME: http://spcode.baidu.com/spcode/spstyle/style3162.jsp?tn=cnpolitics_sp& ctn=0&styleid=3162 当前位置: CSSCI学术论文网 > 档案出版 > 图书馆学CSSCI核心期刊学术论文 > 图书馆学研究 > IFRAME: http://www.csscipaper.com/proxy.html?id=85196 网上信息的跨语言检索 论文发表时间:2009-11-09 19:59学术论文来源:www.csscipaper.com 论文发表 者:MP5 点击:次 IFRAME: http://www.csscipaper.com/proxy.html?id=75016 网上信息的跨语言检索 【作 者】李培/武丽辉 【作者简介】李培,武丽辉,南 开大学国际商学院图书馆学系 天津 300071 李培,男,1964年生,南开大学国 际商学院图书馆学系副教授,图书馆副馆长。 武丽辉,女,1978年生,南开大 学国际商学院图书馆学系2002级硕 IFRAME: http://www.csscipaper.com/proxy.html?id=75023 网上信息的跨语言检索 【作 者】李培/武丽辉 【作者简介】李培,武丽辉,南开大学国际商学院图书馆 学系 天津 300071 李培,男,1964年生,南开大学国际商学院图书馆学系副教授,图书馆副馆长。 武丽辉,女,1978年生,南开大学国际商学院图书馆学系2002级硕士研究生。 【内容提要】文章对跨语言信息检索的相关技术和实现方法进行了系统地论述, 对跨语言检索中的语言资源、翻译歧义性消解等关键性问题的研究进行了归纳与 梳理,指出我国跨语言检索研究距世界先进水平尚有一定差距,应加强该领域的 研究。 【摘 要 题】专题探讨 【关 键 词】跨语言检索/网上信息检索/自动翻译/歧义消解 【正 文】 网上的信息资源类型丰富、数量庞大,所使用的语言亦具多样性。当前全球3130 亿网页内容所使用的语言依次为英文68.4%、日文5.9%、德文5.8%、中文3.9 %、法文3.0%、西班牙文2.4%、俄文1.9%、意大利文1.6%、葡萄牙文1.4% 、韩文1.3%、其他文种4.4%[1]。全世界6亿多网络人口的使用语言依次为英 文38.3%、中文11.2%、日文10%、德文6.8%、西班牙文5.5%、韩文4.1%、 意大利文3.9%、法文3.5%、葡萄牙文3.1%、俄文3%、其他10.6%[2]。网上 资源语言的多样性和网民所掌握语言的差异性不可避免地给人们利用网络带来了 语言障碍,人们对语言自动翻译的需求越发迫切。据统计,2002年10月在使用英 文搜索引擎中提出语言翻译请求的几种主要语种有:西班牙文47.2%、法文17% 、拉丁文7.8%、德文6.2%、日文4.7%、意大利文3.2%、俄文2.4%、中文2 %[3]。为了消除网络资源利用中的语言障碍,跨语言信息检索技术 (Cross-Language Information Retrieval--CLIR)成为目前信息检索领域中重 要的研究课题。     1 跨语言检索的相关技术 跨语言信息检索是指用户以一种语言提问,检出另一种语言或多种语言描述的相 关信息。例如,输入中文检索式,跨语言检索系统会返回英文、日文等语言描述 的信息。这里的信息可以是文本信息也可以是其他形式的信息,目前研究最多的 是跨语言文本信息检索和跨语言语音信息检索。在跨语言检索中,提问式所使用 的语言通常称为源语言,源语言一般是用户的母语;被检索文档所使用的语言称 为目标语言,目标语言可以是用户不熟悉甚至完全陌生的语言。与跨语言检索相 对应,提问式语言和文档语言相同的检索称为单语言检索(monolingual retrieval)。 网上信息跨语言检索的过程是:网络蜘蛛(Web spider)搜索网络信息,在统计 方法、自动标引技术的支持下编制以语言为基础的索引,服务器接受以一种语言 描述的提问式,并返回跨语言检索的结果,这一结果是由不同语言描述的信息集 合构成的。在跨语言检索中主要涉及的技术有计算机信息检索技术和机器翻译技 术:计算机信息检索技术完成提问式与文档之间的匹配,机器翻译技术完成不同 语言之间的语义对等。   1.1 计算机信息检索技术 计算机信息检索技术目前已趋于成熟。在单语言检索中,计算机检索技术主要是 自动搜索技术、自动标引技术和自动匹配技术。检索系统利用网络蜘蛛进行网络 信息的收集,然后利用自动标引技术对搜集的信息进行标引形成索引数据库。用 户输入检索式后,计算机把检索式与数据库中索引项进行匹配,按检索式与标引 项相关性大小降序输出检索结果。跨语言检索中实现信息检索的原理和方法与单 语言检索是相同的,只是在检索的过程中加入语言处理技术,使一种语言能够与 其它语言对应。   1.2 机器翻译技术 机器翻译技术实质上是一种能够将一种语言的文本自动翻译成另一语言文本的计 算机程序。机器翻译技术的核心是保持两种文本(源语言文本和目标语言文本) 的语义对等,由于在翻译过程中,源语言文本中的词往往对应目标语言描述的几 个词,所以要选择最合适的词或其他的处理以达到含义的一致。由于这涉及到复 杂的计算机语义分析技术,因此机器翻译的效果还远未达到人们所期望的水平。 在跨语言检索中,需要利用自然语言处理与机器翻译相结合的技术提高翻译的准 确性,因为在跨语言检索中,翻译的准确性直接决定了检索的准确性。 计算机信息检索技术和机器翻译技术是跨语言检索中所利用的主要技术,由于计 算机检索技术已比较成熟,而机器翻译技术的实用性还有待发展和完善,因此跨 语言检索所要解决的问题实际上是一个语言处理问题。跨语言检索不同于单语言 信息检索和机器翻译,也不是两种技术的简单叠加,它是一种有机的融合,有着 自身的特点和专门的研究内容。     2 跨语言检索的实现方法 目前跨语言检索的主要实现方法有:提问式翻译、文献翻译、提问式--文献翻译 、中间翻译和非翻译。   2.1 提问式翻译方法(query translation) 提问式翻译的过程是把源语言的提问式利用机器翻译技术翻译成目标语言提问式 ,再进行单语言检索。利用提问式翻译的方法进行跨语言检索的实质是把源语言 提问式做了适当转换,其基本的过程和技术还是单语言检索,而且检索返回的结 果是用目标语言描述的,这增加了用户利用信息的难度。当一个源语言提问词有 多个目标语言词与其应时,通常选择第一种或全部的释义作为提问式的译法。选 择第一种译法自然存在一定的不合理性,选择全部的译法又大大降低了检索的查 准率。针对这一问题,Pirkola等人提出了提问式构造法(query structuring )[4],认为主要有三种构造提问式的方法:基于同源词的构造法(syn-based structuring)、基于复合词的构造法(compound-based)、n元匹配法(n-Gram matching)。提问式构造方法的实质是利用同源词、复合词或n元匹配分析提问 式中各个词的权重:只有一种或两种释义的词的权重最高,而有多种解释的词用 同源词符、复合词符或n元匹配符连接以降低其权重。Pirkola等人通过对三种方 法实验,验证了使用提问式构造法会提高跨语言检索的检索性能。   2.2 文献翻译方法(document translation) 文献翻译方法不对提问式进行翻译,而是把数据库中用目标语言描述的文献翻译 成与提问描述相一致的源语言形式,再通过提问式与信息库的匹配,完成检索过 程。运用文献翻译方法进行跨语言检索,返回给用户的结果是用源语言描述的, 用户能够方便地选择利用。文献层次的翻译相比于提问层次的翻译,其语境更加 宽泛,进行歧义性分析所能利用的线索比较多。但是这种方法所使用的文本自动 翻译技术的正确率目前还难以达到实用水平,而且将数据库中全部文献从目标语 言翻译到源语言的工作量也是巨大的。文献翻译方法只有在翻译内容有限的情况 下才有意义,如对已确定要浏览的某个网页进行翻译。目前采用这种方法的实验 系统尚未见报道。   2.3 提问式-文献翻译方法(query-document translation) 在这一方法中,源语言提问式翻译成目标语言提问式,与目标语言描述的信息库 进行匹配,检出相关信息,然后再把检索结果的全部或部分翻译成源语言描述的 信息。检索结果的翻译一般选择部分翻译,因为跟全部翻译相比,部分翻译的工 作量较少,容易提高翻译的效率和质量。部分翻译一般是对结果文本的前两行、 文摘、或文本中重要的词进行翻译。在重要词的翻译中,如何找出确定重要词是 决定这种方法效果的关键。目前的研究主要是根据词频并结合禁用词表和功能词 表来决定词的重要性。利用提问式-文献翻译方法进行检索,返回给用户的结果 是用用户所熟悉的源语言描述的,用户能够容易地选择利用检索出的信息,减少 了用户的翻译成本,提高了检索服务的质量。   2.4 中间翻译方法(triangulated translation) (转载请注明网络来源:CSSCI学术论文网) * 共3页: * 上一页 * 1 * 2 * 3 * 下一页 分享到: 新浪微博 网易微博 QQ空间 QQ收藏 开心网 人人网 百度空间 ------分隔线---------------------------- 搜索与网上信息的跨语言检索相关的CSSCI学术论文 谷歌搜索网上信息的跨语言检索 百度搜索网上信息的跨语言检索 搜狗搜索网上 信息的跨语言检索 必应搜索网上信息的跨语言检索 搜搜搜索网上信息的跨语言 检索 雅虎搜索网上信息的跨语言检索 有道搜索网上信息的跨语言检索 CSSCI学术论文网站内搜索 CSSCI学术论文网免费论文栏目 + 信息科学研究 + 资料工作研究 + 图书馆学基础 + 图书馆学研究 + 图书馆学理论 + 图书馆学概论 + 图书馆学动态 + 图书情报工作 + 图书馆界研究 + 现代情报研究 + 图书馆学论文 + 大学图书馆学报 IFRAME: http://www.csscipaper.com/proxy.html?id=95862 CSSCI学术论文网热门论文下载 + 论信息资源组织方式的演变――文 + 改进的中文同义词相似匹配方法 + 高校共享数据中心平台的设计与实 + 图书分类法映射系统设计原理―― + 图书馆书刊采购决策支持系统设计 + 国外信息伦理学研究述评 CSSCI学术论文网精彩论文推荐 IFRAME: http://www.csscipaper.com/proxy.html?id=95828 + 中国学术界用户对互联网信息的利用及其评价 中国学术界用户对互联网信息的利用及其评价 【英文标题】The Using of Internet Infor... + 信息资源的基本理论问题研究 信息资源的基本理论问题研究 【英文标题】On the Basic Theoretical Issues of Inform... + 数字图书馆中多媒体馆藏与服务的建立 数字图书馆中多媒体馆藏与服务的建立 【英文标题】Developing Online Multimedia Coll... CSSCI学术论文网优秀合作商推荐 IFRAME: http://www.economypapers.com/proxy.html?id=75677 CSSCI学术论文网论文链接表 学术论文写作指南 | CSSCI来源期刊 | 最新论文 | Rss订阅 | 网站介绍 | 联 系我们 | 版权申明 | 广告服务 | 学科论文 | Sitemap | 收录查询 | 期刊编 辑入口 | 论文发表咨询 Powered by CSSCI学术论文网 本站历史访问总数: CSSCI学术论文网-中国最具 影响力的核心期刊学术论文发表平台 CSSCI学术论文范文网 | 中国学术论文免费下载中心 | CSSCI核心期刊论文发表 网 | 免费论文下载网站 | 学术论文写作格式标准网 | 学术论文毕业论文发表 网 Copyright (c) 2009-2011 http://www.csscipaper.com/ Some Rights Reserved.CSSCI学术论文网 版权所有.中国学术期刊论文总库. 湘ICP 备09022684号 CSSCI学术论文网所有核心论文来源于网络共享资源以及相关CSSCI权威学术期 刊,仅限学术交流,勿作商业用途.涉关权利申诉,请致函站长专属信 箱:admin@csscipaper.com. CSSCI学术论文网关键词:中国免费学术论文网,免费学术论文大全,免费毕业论文 网,免费学术论文下载网站,中国学术论文下载中心,CSSCI学术论文发表,CSSCI来 源期刊论文,CSSCI学术期刊论文网,权威期刊论文网,毕业论文免费下载,毕业论 文范文大全,毕业论文格式,本科毕业论文范文,大学生毕业论文范文,学术论文格 式范文,学术论文范文网,学术论文范文下载.