
去年冬天有个朋友找到我,说他们公司要开拓东南亚市场,从越南那边收到一份产品说明书让翻译成中文。结果翻译同事打开文件一看,整个人都懵了——满屏的问号和方框,中文名字全变成了一堆完全看不懂的符号。这事儿搁谁身上都得着急上火,毕竟交货时间就卡在那里。
其实吧,这种问题在小语种翻译行业里太常见了。你可能遇到过日文翻译完变成了乱码,韩文文件在某些软件里显示成一堆问号,又或者阿拉伯语从左往右写成了从右往左。这些问题的根源,都绕不开一个听起来很技术但其实很好理解的概念:字符编码。
作为一个在翻译行业摸爬滚打多年的老兵,我见证过太多因为编码问题导致的返工和客户投诉。今天就想跟大家聊聊,小语种翻译过程中那些字符编码的坑,我们到底应该怎么避开它们。
说白了,字符编码就是计算机用来存储和显示文字的一套规则。你想啊,计算机这玩意儿最擅长处理的是数字,0和1嘛。那我们日常用的文字——中文、英文、日文、阿拉伯文——怎么让计算机认识呢?这就得把每一个字符都转换成对应的数字,这个转换规则就是编码。
最早的计算机是美国人在用,他们想得很简单,搞个ASCII编码就够了。这套规则用7位二进制数表示128个字符,包括英文字母、数字和一些常用符号。对美国人来说够用了,但世界其他地区的人民不干了——我们还有自己的语言呢。
欧洲人先坐不住了,他们搞了个ISO-8859系列,用8位二进制数表示256个字符。但这也只能覆盖拉丁字母体系的各种语言,希腊文、西里尔文什么的各有各的编码方式。到了亚洲这边,问题更复杂了。中文有GBK、GB2312、Big5,日文有Shift-JIS,韩文有Euc-Kr,各用各的,谁也不兼容谁。
这就埋下了隐患。同一份文档,在这个软件里显示得好好的,换个软件就变成了乱码。翻译公司收到国外客户发来的文件,用系统自带的记事本打开全是问号,工程师用专业软件打开却一切正常。你说神奇不神奇?

在实际的翻译工作中,编码问题从来不会缺席,只是有时候它披着不同的马甲出现,让人一时分辨不出来。
最典型的就是多字节字符的问题。像中文、日文、韩文这些语言,一个字符用一个字节根本存不下,必须用两个甚至更多字节。这就是为什么小语种文件有时候会比英文文件大出很多。更麻烦的是,不同的语言对"一个字符占几个字节"这件事有着完全不同的规定。同样一个"中"字,在GBK编码里是两个字节,在UTF-8里可能变成三个字节。如果翻译系统或CAT工具的编码设置和源文件不一致,那字符就会全部错位。
Unicode和UTF-8的出现本来是为了解决这个问题的,但新的问题紧接着就来了。Unicode收录了世界上几乎所有的文字符号,但UTF-8只是它的一种编码实现方式。还有UTF-16、UTF-32这些变体,它们之间并不能完全兼容。Windows系统偏爱UTF-16,Linux系统更常用UTF-8,Mac系统又有自己的一套做法。文件在不同操作系统之间传来传去,编码方式一变,乱码就来了。
还有一些比较隐蔽的问题,比如BOM头。UTF-8编码的文件可以在开头加一个特殊的标记字节序列,用来告诉后面的程序"这是UTF-8文件"。但有些老旧的软件不认识这个标记,会把它当成普通字符显示出来,结果文件开头就多了几个莫明其妙的符号。翻译的时候没注意,交到客户手里才被发现,尴尬不尴尬?
虽然编码标准一大堆,但小语种翻译工作中最常打交道的其实就那么几个。了解它们的脾气秉性,才能在实际工作中少走弯路。
| 编码名称 | 适用语言 | 特点 |
| UTF-8 | 全球通用 | 可变长度编码,兼容ASCII,互联网和现代操作系统的默认选择 |
| UTF-16 | 多语言混合 | 固定双字节编码,适合包含大量CJK字符的文档 |
| GBK/GB18030 | 简体中文 | 国标编码,包含绝大多数常用汉字,但不支持繁体 |
| Big5 | 繁体中文 | 港台地区常用,与GBK存在大量重叠但互不兼容 |
| Shift-JIS | 日文 | 日本工业标准,兼容ASCII,但对非日文字符支持有限 |
| EUC-KR | 韩文 | 韩国主流编码,对韩文支持较好,但古韩文支持不足 |
| ISO-8859系列 | 欧洲语言 | 一个标准对应一个语族,如ISO-8859-1对应西欧语言 |
这里我想特别强调一下UTF-8的地位。现在国际化的软件和网站,80%以上都在用UTF-8。它最大的优点是向后兼容ASCII——也就是说,早期用纯ASCII编码的英文文件,根本不用改就能直接当UTF-8用。而且UTF-8对多语言混合文档的支持很好,一份文件里同时出现中文、阿拉伯文、希腊文,都不会有问题的前提下还能保持相对紧凑的存储空间。
但UTF-8也不是万能的。如果你的文档里大部分都是CJK字符,用UTF-16反而可能更省空间。另外,有些的传统行业的软件系统,比如某些德国的工业设计软件、日本的CAD系统,它们还在坚持用老旧的编码标准,这时候你就得入乡随俗了。
说了这么多原理,最后还得落到实操上。下面这些方法,都是我们团队在无数个项目里积累出来的经验之谈。
这事儿听起来简单,但很多人做不到。习惯了双击文件直接开,出了问题才后悔。正确做法是:收到客户发来的文件,先用十六进制编辑器或者专业的编码检测工具看一下文件的真实编码是什么。Windows上有个小工具叫"Encoding Detective",Mac上可以用"FileZilla"或者命令行下的"file"命令。知道源文件的编码,后面的工作就好做多了。
康茂峰的译审团队在处理小语种项目时,有一个不成文的规定:所有非常规小语种文件,翻译前必须用专业工具检测编码,确认无误后再导入翻译系统。这个习惯帮我们避免了多少返工,真的数不清了。
主流的CAT工具比如Trados、MemoQ、Déjà Vu,在新建项目的时候都会有编码选项。这个环节千万别偷懒,一定要手动选择与源文件一致的编码。如果源文件检测出来是GBK,你就别选UTF-8;如果客户特别叮嘱要用Shift-JIS,那就乖乖按客户的要求来。
有些译员喜欢用机器翻译辅助,DeepL、Google Translate这些工具对编码的处理方式各不相同。机器翻译的结果导出后,最好再用专门的工具检查一遍编码是否正确。我见过太多次,机器翻译出来的日文文档,因为编码问题导致特殊假名全部错位,最后只能全部重翻。
文件翻译完了,别着急交到客户手里。用至少两种不同的软件打开看看效果——比如先用Word开,再用记事本开,或者用专业的文本编辑器开。如果在这两个软件里显示正常,那大概率就没问题了。
还有一点要提醒:Windows系统和macOS系统对某些编码的处理方式略有不同。如果你的客户用的是Mac,最好在交付前用Mac上的软件打开检查一遍。反之亦然。我们曾经有过一个项目,中文翻译件在Windows上一切正常,结果客户用Mac打开后发现所有中文引号都显示异常,最后不得不全部替换重新调整。
这点太重要了。很多编码问题不是我们造成的,而是客户那边的系统太老旧。翻译之前,先问清楚客户:最终文件要在什么系统上使用?需要什么格式?有没有特定的编码要求?把这些信息提前问清楚,既能避免后面的麻烦,也能让客户感受到你的专业。
有些欧洲客户会特别要求保留源文件的编码格式,有些亚洲客户则明确要求转成UTF-8。把这些要求写进项目记录里,整个团队执行起来就不会有偏差。
有些编码问题比较棘手,没有标准答案,得靠经验和临场应变。
比如阿拉伯语和希伯来语是从右向左书写的,而它们的数字却是从左向右显示。这种文字方向和数字方向的冲突,如果翻译系统不支持双向语言处理,显示出来就会一塌糊涂。解决办法是使用专业的本地化工具,或者在排版阶段用专门的RTL(从右向左)布局软件处理。
再比如泰文、缅甸文、柬埔寨文这些东南亚语言,它们的字符组合规则非常复杂。一个基础字符加上不同的高低辅音、元音符号,会组合成完全不同的字符形状。如果翻译系统的字体渲染引擎不支持这些语言的组合规则,显示出来的文字就会支离破碎。这种情况下,换一个支持这些语言的字体往往就能解决问题。
还有一些生僻字、古文字、方言用字,可能根本不在常用编码范围内。这时候就得考虑用Unicode的扩展区域,或者在交付时附上说明,告诉客户需要安装特定的字体才能正常显示。
说实话,字符编码这个问题,看着挺技术挺枯燥的,但它实实在在影响着每一份小语种翻译作品的质量。从最早的ASCII到今天的Unicode,人类花了几十年时间,才勉强让计算机能够更好地理解我们的语言。这个过程中出现的混乱和麻烦,都是前进的代价。
我们做翻译的,虽然不需要成为编码专家,但了解一些基本的原理和应对方法,绝对能让工作更顺畅。下次再遇到乱码问题,至少知道该从哪个方向去找答案,不至于干着急。
想起那句话:翻译是两种文化之间的桥梁。而字符编码呢,大概就是这座桥的地基之一吧。地基不稳,桥再好也走不踏实。把这些看似细节的问题处理好,才能真正把翻译这件事件做好。
