客户发来一个文件,双击打开,满屏“锟斤拷锟斤拷锟斤拷”,中间夹着几个黑底白字的问号。第一反应是文件坏了,第二反应是让人重发一遍,第三反应才是——是不是我这儿哪儿不对劲。其实多半不是文件坏了,是编码没对上。
这两年,“锟斤拷”是办公室里见怪不怪的东西。做外贸的收到供应商的报价单,做工程的收到设计院的图纸说明,行政收到总公司发来的通知,一打开,满屏方块、问号、乱码。急得跳脚的时候,在电话里跟对方来回确认,人家那头一头雾水:“我这儿明明是好好的。”两边都好好的,文件就是读不出来,问题出在中间那层看不见的“字典”上。

中文在电脑里存,靠的是一套套编码。简体中文的老系统,默认用的是 GB2312 或者 GBK,这是国内自己定的规矩;后来国际通用的 UTF-8 慢慢传开,网上新出的东西、外来的软件,不少默认用它。一个文件存的时候用这套“字典”写,打开的时候用另一套“字典”读,两下对不上,出来的就是乱码。不是文件坏了,是“字典”拿错了。
乱码也分长相。满屏“锟斤拷”,多半是 GBK 去读了 UTF-8 的文件;满屏黑底白字的问号,多半是读文件的程序不认那种编码;满屏口口口的方块,多半是字体里没有对应的字形。看长相能猜个七八分,但不用记那么细——记住一件事就够:乱码是“读法”不对,不是“内容”没了。
怎么救?最顺手的是记事本。文件打开是乱码,别急着删,也别急着改,点“另存为”,底下有个编码的选项,一般是 ANSI、Unicode、UTF-8 三种,挨个试一遍。ANSI 读成乱码,换成 UTF-8 试试;UTF-8 读成乱码,换回 ANSI。多数情况下,换到第二回,满屏乱码就变成了能看懂的字。
Word 里也有这个门道。打开文件的时候,别直接双击,先进 Word,点“文件”再点“打开”,在对话框里选“工具”下面的“编码”,指定一种编码再开。还有网页,浏览器菜单里一般也有“编码”或者“文字编码”一项,简体、繁体、自动选择,挨个切。这三个地方学会,九成的乱码都能自己救回来。
最常见的翻车现场是 Excel。从网上导下来的 CSV,或者财务给的报表,双击用 Excel 一开,全是乱码。这种别在 Excel 里硬折腾,先拿记事本打开那个文件,另存为 ANSI,再拖回 Excel,基本就好了。原理还是那句:先把“读法”对齐,再谈别的。
网页也会乱码。打开一个网页,满屏问号,多数是浏览器自动判断编码没判断对。浏览器菜单里一般有“编码”这一项,简体中文、繁体中文、自动选择,来回切两次,页面就正常了。那阵子论坛、博客正火,网页乱码不算稀罕事——发帖的人存的时候一套编码,服务器吐出来另一套,看的人只好自己动手。
邮件里收的附件,乱码更多。用 Foxmail、Outlook 收信的人都有体会:正文好好的,附件一下来,一打开,满屏乱码。这种情况别删,先把附件另存到桌面,再用记事本或 Word 按“换编码”的办法试。很多附件其实是文本文件换了层皮,换对了编码,内容就回来了。
还有一种乱码在文件名上。WinRAR 解压出来的文件,名字是乱码,打开内容倒是好的——这是压缩时用的编码跟解压时不一样。办法也简单:别管文件名,先看内容能不能读;内容正常,文件名乱就乱着,自己重命名一下就行。怕的就是文件名也乱、内容也乱,那才真要命。
编码这摊子事,还有个亲戚叫繁体。港台那边的文件,常用 BIG5 编码,简体系统直接打开,也是一片乱码。做贸易的、看繁体资料的,会碰上。浏览器和 Word 里都能指定“繁体中文”再开,或者用软件转成简体再看。那几年两岸生意往来多,会转编码的人,出差都吃香。
那阵子网上资源多,BT、迅雷下回来的 txt 小说、电影字幕,十个里有三个是乱码。下之前看下载页面说的编码,下回来先拿记事本转一遍,再存回能用的格式,省得看到一半才发现。还有人把奥运的资料、倒计时的壁纸、报名用的表格从网上下回来,一打开全是乱码,急得团团转——其实都是同一回事,编码没对齐。
也有救不回来的时候。为什么改了编码还是乱码?那多半是文件在传的时候出了问题——传了一半断了、存储卡坏了、压缩包解压时报错。这种就别在编码上耗了,找对方重新发一遍,或者重新下载,比瞎折腾强。
还有个误区得说清楚:乱码不是中毒,也不是电脑坏了。有人一见乱码就喊“中招了”,把杀毒软件翻出来全盘扫描,扫了半天,乱码原样躺着。乱码就是编码的事,跟病毒不沾边。看见乱码先想“读法”,别先想“坏了”。
自己会救了,还得会跟对方说。文件打开乱码,别一上来就发火说“你发的什么东西”,先自己试一遍;真试不出来,再客气地回一句“文件这边打开有点乱,方便的话重新发一份,或者存成文本格式”。多数人不知道自己发的文件会乱码,你说清楚,人家下次就知道存成通用的格式。为这事吵起来的,不值当。
还有人问,乱码文件里那些“能猜出来的字”能不能直接改?能,但费劲。真缺那一段内容,宁可花两分钟把编码弄对,也别一个字一个字地猜着改——猜错一个字,报价就错了,合同就错了,那份文件就废了。编码弄对了,改动才敢动。
还有个小地方容易忽略:打印出来的乱码。文件在屏幕上读得好好的,打印出来却是一串问号,那是打印机驱动里字体的事,跟文件编码无关。真要打印,先另存成能正常显示的编码,或者换个字体试试,别在打印机上较劲。
救乱码这事,看着小,其实是个熟练活。头一回手忙脚乱,第二回就轻车熟路了——打开、另存为、换编码、看效果,四步走完,两分钟的事。办公室里的电脑,用的年头长了,谁没几个乱码文件躺着?会救的人多了,大家互相一教,也就没那么多“打不开就重发”的冤枉路了。
这两年编码问题特别多,说白了是两套规矩在打架:国内老软件守着 ANSI 的老规矩,网上新东西爱用 UTF-8 的新规矩,谁也没通知谁,文件一换手就打架。等到后来大家慢慢统一了,乱码才少了。可在那之前,会“另存为换编码”这个动作的人,就是办公室里最吃香的那个——谁的文件打不开,都先喊他。
有一回,同事把一份救回来的文件另存成正常编码,发给客户,电话那头回了一句“这回能打开了,谢谢啊”。就这一句,比什么表扬都实在。窗外的天擦黑,屏幕上那行字清清楚楚——文件还是那个文件,字还是那些字,换了个读法,全对了。


