千字文里的重复字

The quick brown fox jumps over the lazy dog. (敏捷的褐色狐狸从懒狗身上跳过。)

我们经常在电脑软件看到上面的这句话,一般是用来展示字体的,英文里所有的26个字母都包含在这个简短的句子里,字体效果一目了然。这叫做“全字母句”(pangram),据说在早期以最节约的方式测试打字机(拜托,把键盘上每个键挨个儿摁一下不更省事吗?)。这种有趣的文字游戏有很多,比如下面是德语的一个全字母句:

“Fix, Schwyz!” quäkt Jürgen blöd vom Paß.(”快点,施维茨!”约根在通道里傻傻地喊。)

句子既包含所有字母,又要有含义,而且要尽可能短(字母尽量不重复),要同时满足这三点,虽然难,但在表音文字中毕竟是有可能的。那么,汉语这种表意文字有没有“全字母句”呢?

汉字常用字有几千,总共有几万,想写出同时满足以上三点的“全字母句”,是 mission impossible。然而,1500 年前,我们的祖先把 1000 个常用汉字连缀成一篇奇文,这大概是最接近“全字母句”的汉语文章。这篇文章就是《千字文》。

我在《春晚里的国学瑰宝:千字文》里详细介绍了这篇奇文,认为此文可以用来“识汉字、通声律、长知识、修德行”,“在国学启蒙读物里,千百年来无书能出其右”。

无疑,《千字文》最大的亮点是“字不重复”,但是,有人对此提出质疑,说有七个字(也有说1个字或6个字)重复了:发,巨,昆,戚,云,并,洁,都出现了两次,因此实际只有993(或999,或994)个汉字。不过,这也很不容易了,别太苛求完美了。那么,《千字文》真有重复的字吗?

可以说是,也可以说不是。简体字版是,原文不是。

  1. “发”:由繁体字“發”和“髮”简化而来。出现在“周发殷汤”句和“盖此身发”句,原文为“周發殷汤”“盖此身髮”。發读第一声,是武王姬发的名字;髮读第四声,是头发。这大概是最常见的混淆了。有些理发店把店名写作“理發店”,卡拉OK把“发如雪”写成“發如雪”,都弄错了。周潤發以前给百年潤髮的洗发水做广告,更加深了这种误会。

  2. “巨”:由“巨”和“鉅”合并而来。出现在“剑号巨阙”句和“巨野洞庭”句,原文为“剑号巨阙”“鉅野洞庭”。巨阙是一把名剑的名字,鉅野是山东的一个地名,两者无关。

  3. “昆”:由“昆”和“崑”合并而来,出现在“昆池碣石”句和“玉出昆冈”句,原文为“昆池碣石”“玉出崑冈”。昆池是昆明的滇池,崑冈指昆仑山(可以写作崑侖或崐侖),两者无关。

  4. “戚”:由繁体字“戚”和“慼”合并而来,出现在“亲戚故旧”句和“戚谢欢招”句,原文为“亲戚故旧”“慼谢欢招”,“慼”的意思是忧伤,跟“亲戚”的“戚”无关。

  5. “云”:由繁体字“雲”和“云”合并而来,出现在“云腾致雨”句和“禅主云亭”句,原文为“雲腾致雨”“禪主云亭”,“雲”是云彩,“云”是泰山脚下的一座山名为“云山”,封禅之地,两者无关。

  6. “并”:由“并”和“並”合并而来,出现在“百郡秦并”句和“並皆佳妙”句,原文为“百郡秦并”“並皆佳妙”。“並”指并列,“并”指兼并,两字原本无关。

  7. “洁”:由“絜”和“潔”合并而来,出现在“女慕贞洁”句和“纨扇圆洁”句,原文为“女慕贞絜”“纨扇圆潔”,意思都是“洁净”。

古人不用简体字,因此说“《千字文》无一字重复”并不夸张。属于完美之作。不知如此神作是否还有别篇?

dapeng 首发于晴耕雨讀志,2014-01-31 于 Bayreuth。

千字文里的重复字》上有4条评论

  1. 马光

    还有一个类似的《中华字经》,4000字不重复:http://blog.sina.com.cn/s/blog_6ca9b4dd01017jww.html
    简繁体的恩恩怨怨,不是一两句能说清的了,看以后如何发展吧。

    回复
    1. dapeng 文章作者

      中华字经,太牛了,长见识了,发现好多字不认识啊。

      回复
        1. dapeng 文章作者

          牛是牛,不过既然有1000字的在先,再弄个4000字的,我觉得很山寨。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax