中国当代文学研究会唯一官方网站

A PHP Error was encountered

Severity: Warning

Message: file_get_contents(jsapi_ticket.php): failed to open stream: No such file or directory

Filename: php/jssdk.php

Line Number: 104

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 104
Function: file_get_contents

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 47
Function: get_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Trying to get property 'expire_time' of non-object

Filename: php/jssdk.php

Line Number: 48

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 48
Function: _error_handler

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: file_get_contents(access_token.php): failed to open stream: No such file or directory

Filename: php/jssdk.php

Line Number: 104

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 104
Function: file_get_contents

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 69
Function: get_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 49
Function: getAccessToken

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Trying to get property 'expire_time' of non-object

Filename: php/jssdk.php

Line Number: 70

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 70
Function: _error_handler

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 49
Function: getAccessToken

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Creating default object from empty value

Filename: php/jssdk.php

Line Number: 77

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 77
Function: _error_handler

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 49
Function: getAccessToken

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: fopen(access_token.php): failed to open stream: Permission denied

Filename: php/jssdk.php

Line Number: 107

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 107
Function: fopen

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 79
Function: set_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 49
Function: getAccessToken

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, bool given

Filename: php/jssdk.php

Line Number: 108

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 108
Function: fwrite

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 79
Function: set_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 49
Function: getAccessToken

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: fclose() expects parameter 1 to be resource, bool given

Filename: php/jssdk.php

Line Number: 109

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 109
Function: fclose

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 79
Function: set_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 49
Function: getAccessToken

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Creating default object from empty value

Filename: php/jssdk.php

Line Number: 56

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 56
Function: _error_handler

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: fopen(jsapi_ticket.php): failed to open stream: Permission denied

Filename: php/jssdk.php

Line Number: 107

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 107
Function: fopen

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 58
Function: set_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, bool given

Filename: php/jssdk.php

Line Number: 108

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 108
Function: fwrite

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 58
Function: set_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: fclose() expects parameter 1 to be resource, bool given

Filename: php/jssdk.php

Line Number: 109

Backtrace:

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 109
Function: fclose

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 58
Function: set_php_file

File: /data/wwwroot/www.cclitr.com/php/jssdk.php
Line: 12
Function: getJsApiTicket

File: /data/wwwroot/www.cclitr.com/application/views/home/memberDetail/memberDetail.html
Line: 4
Function: getSignPackage

File: /data/wwwroot/www.cclitr.com/application/controllers/home/IndexController.php
Line: 787
Function: view

File: /data/wwwroot/www.cclitr.com/index.php
Line: 315
Function: require_once

  1. 首页 >
  2. 新作评论 >
  3. 小说评论

王安忆长篇小说《五湖四海》:巨变的时代,不变的日常

来源:文艺报 | 胡诗杨 发布日期:2022-11-28

初读到“五湖四海”这个标题时,我们可能会联想到滔滔河水向四面八方奔腾涌动的画面,但是在王安忆的新作《五湖四海》里,这种庞大开阔的气象仅仅是一道前菜。小说讲述了出生于上世纪50年代末的水上人家修国妹与张建设创业起家的数十年历史,但在王安忆笔下,改革开放时代的传奇往事被家长里短以及情感纠葛等日常生活的细节所覆盖。

小说《五湖四海》内部有两条线索,一条线索指向改革开放时期水上人家“猫子”张建设的创业历程,这一传奇的创业经历颇有五湖四海的气势;另一条线索指向修国妹个人心灵中隐微的烦恼,她在家族日益壮大的进程中感到丈夫、儿子与小妹同她在情感上日渐疏远,两条线索如麻花一般纠缠前行,共同编织了小说的景象。

实际上,修国妹个人的心灵烦恼是小说更具统领性的内容,也是王安忆对于第一条线索的传奇性的解构。小说《五湖四海》的开头第一句便是“她不知道日子怎么会过成这样!”小说前半部分追溯了修国妹与张建设的恋爱、结婚、生儿育女等大事,并着重叙述了张建设贷款创业的经历,对于这一系列传奇往事的追忆都是为了回答开头的这一个发问——修国妹的日子怎么会过成现在这样?然而,发问注定是无用的,因为“她不知道”,当她试图思索时,生活却滚滚向前,没有给她答案。

作者一边用修国妹的限知视角回溯往事,一边用全知视角预言未来。小说中写修国妹去庙里抽签,抽得中平签,“修国妹自以为好命,同时又是劳碌的命,所以就很认”。而僧人告诉她“中平签其实最好”,“中平签”这一细节正是王安忆“反传奇”写法最好的注脚,作者提前告知我们这些传奇最终都将归于平淡与日常,修国妹不可能大富大贵,她只是一个认真生活的普通人而已,身上带有热腾腾的烟火气。

带着预言重读小说,会发现人物的结局早有暗示。在张建设去探望当年为他办理贷款的姚老师时,他才得知姚老师已因受贿入狱,接待他的姚师母提醒了他一句,“你是能人,做庸人一世平安,能人就不定了”。后来张建设不断向“能人”的方向发展,从草根一路做到家族企业总裁,然而他在作业时突发意外,未能善终,这一戛然而止的结局恰证实了当年的预言。

《五湖四海》是一部宿命感意味很强的小说,这也恰应了小说开头所说的,“水上人都有点信命”。而王安忆则在写作中把“信命”和“反传奇”的特点编织进了叙事,人物的命运在一开始就已注定,他们都不自觉地朝着注定的终点奔去。

当修国妹在回溯传奇往事何以使得她的日子过得不如意时,小说的一个转折点是小弟的归国。在小弟归国以前,修国妹尚觉得日子过得幸福,小弟归国以后,她日常生活中的烦恼便开始逐日累积。小弟的归国勾连起来的是小说后半部分写到的90年代 “留学热潮”,修国妹的小弟、弟媳袁燕、儿子舟生都曾赴美留学,后来张建设也因生意原因前去美国出差。修小妹则在新加坡失踪,多年后带回了一个不知生父的混血儿核桃。修小妹追求时髦,向往西方文化,叛逆且利己,是整个时代大潮的产物,她是小说中典型的“新人类”。小妹突然的失踪出走、突然的生子归家,亲姐妹之间长久的生疏与隔膜是令修国妹感慨日子烦恼的一大缘由。

留美归来的小弟曾向修国妹盘点起家中各成员,并将众人分为两类,“一类喜欢美国,我就叫他们‘新人类’,一类不喜欢美国,叫‘旧人类’”。在小弟的归类中,他自己和修国妹都属于“旧人类”,而小妹虽然从未去过美国,在他那里却属于“新人类”。张建设虽未被纳入小弟的分类体系,但我们可以判断他居于二者之间,是由旧转新的人。他父母早亡,几乎可算作孤儿,他虽也出生于水上人家,但却约等于一个“无根”的人。因为“无根”,他十分重视亲缘关系,力图打造一个大家庭,也恰恰因为“无根”,他可以毫无障碍地接受一切新观念,快速适应市场经济的浪潮,一手创办了家族企业。然而张建设并不满足于现状,他不断扩张企业,而后自美国出差归来,他便性情大变,鲜少顾及家庭,夫妻二人的间隙是修国妹日子过得苦恼的另一大缘由。

“旧人类”修国妹自认落后倒并不是最坏的,她相信水上人家自有其价值,令她感到苦恼的是自己与丈夫、儿子、小妹等家族中的“新人类”逐渐失去共同话题,愈发疏远,隔膜丛生。小弟的归国之所以成为转折点,正是因为他给家乡带回了一个翻天覆地的新世界,而他本人的颓唐又显示出新世界并不能给每个人带来幸福,反而会给“旧人类”带来更多苦恼。到底是“新人类”好还是“旧人类”好?小说并没有给出答案,但它提供了我们思考的空间。

《五湖四海》中,河道与高速公路成为了既对立又相关联的两种象征。河道象征具体、现象、感官、形而下,高速公路则象征抽象、本质、理性、形而上。这样的分类源自小说中修国妹在临近结尾处的开悟,她独自一人开车上路,途中作者插入了一段颇具哲学意味的思考——“河道是未经过提炼的原形,高速公路是形而上。前者是感官世界,后者是理性思维。即便如修国妹的具体的人生,在速度里也体会到一种抽象的快意。”

然而陆路与水路又并非二元对立的简单关系,因为“高速公路是另一种水系,通往四面八方,没有到不了的地方”。在水上人修国妹眼中,公路无非是一条速度更快的、更抽象的河道,河道无非是一段更缓慢、更具体的公路。而修国妹也会学着小弟的话,以水系与船只作为参照系,将美国指认作“那个公路和汽车的国家”。与其说河道是修国妹的全部世界,不如说修国妹将河道视为理解这个新世界的方式。

修国妹用未经提炼的具体、可感、及物的思维理解世界。她的生活具体而充实,在灶台与卧室间忙进忙出,挂虑每日的衣食,她是被日常生活烦恼所裹挟的普通人。修国妹是用感官生活的人,她以味觉品尝鲜鱼肉与炒腰花的味道,以嗅觉闻家乡酒糟发酵的香味。当时代滚滚向前进,世界发生翻天覆地的大变化后,修国妹不禁感慨道:“这是一个新世界,只有气味还是老样子。”修国妹不用理性思维生活,相比于金钱收益,她更关心一家人的情感关系,她因为缺席了儿子舟生的成长而与之生有隔膜,所以刻意将女儿园生牢牢拴在自己身边,她与小弟格外亲近,几乎将小弟看作自己的儿子,但与小妹却生疏得很,宛如两代人。后来修国妹与丈夫竟也成为了熟悉的陌生人,他们二人在床上的一次对话被比作在河的对岸喊话,你一言,我一语,来回穿梭过辽远的、空旷的空间,心理上的距离感被实体化,陌生感油然而生。

在《五湖四海》中,王安忆解构了张建设创业的传奇性,而给予了普通人修国妹更多的同情与理解,她更看重改革开放大时代之下个人心灵的波澜。小说后半段也颇有《长恨歌》的韵味,延续了王安忆“反传奇”的写法,深入具体的日常生活本身,小说写得不疾不徐,娓娓道来。为什么写的是水上日常,却要用“五湖四海”为题?也许正是这样的反差,才构成了我们理解这部小说的张力。五湖四海当然有气魄,但更宝贵的可能便在于这里的水上人家。