传奇之家 - 传奇开区一条龙服务网站

当前位置:传奇之家 > 常见问题 > > 详细页面

NPC 名字变方块|是字体缺字还是脚本编码错了?

NPC 名字变方块|是字体缺字还是脚本编码错了?

NPC 名字变方块|是字体缺字还是脚本编码错了?

作者:传奇之家类别:常见问题

更新:2026-11-11查看次数:168

昨天有人发来一张截图。土城的传送员名字变成一排方块,点开对话框,中文全是问号,数字和英文正常。他说重启过三次 M2,换过登录器,没用。

我先问了一句:别的 NPC 是不是也这样。他说是,所有 NPC 都这样。这一句基本能定性,问题不在某个脚本里,在编码或者字体。

字体先排掉。让他把客户端 Font 目录和另一台正常的机器对比,文件大小一致;再把分辨率调到最低,方块没变。字体这条排除。

剩下编码。他这套端是从别的版本拷过来的,脚本在 Envir\Market_Def 下面。用编辑器打开其中一个 txt,右下角显示 UTF-8。问题就在这里。

传奇服务端的脚本按 GBK 读。M2 拿 UTF-8 的中文去解,一个汉字占三个字节,被当成两个字节切开,剩下的一半对不上,就变成问号或者方块。看着像缺字,其实是字节错位。

改法是把文件另存为 ANSI,保存时不带 BOM。他转完三个文件重启,还是乱码。这里卡了一会儿,后来发现他改的是 backup 目录,正式目录没动。这种错很常见。

正式目录改完重启,NPC 名字正常了,对话框里的物品链接还是方块。这次不是脚本,是数据库。物品名从 DB 里读,DB 里存的中文本身就是乱码。

他之前用 Navicat 往物品表里加过东西,连接字符集选了 utf8,写进去就是 UTF-8。M2 按 GBK 读,又错位。这一处只能改数据:导出、转码、导回,或者在 M2 自带的数据库编辑里手动改。慢,但不会错。

前后折腾了两个小时。他一开始认定是客户端问题,重装了两遍,扔掉一个多小时。如果开头就问一句"所有 NPC 都一样吗",这段能省掉。

补一句。用 Notepad++ 转码,别选 UTF-8,也别选 UTF-8 with BOM,选 ANSI。BOM 会让脚本第一行读不出来,报的错跟编码一点关系都没有,更绕。