2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

俸俸伲購美病

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
跳至導覽 跳至搜尋
大萌字.svg
萌娘百科歡迎您參與完善本條目☆Kira~
歡迎正在閱讀這個條目的您協助編輯本條目。編輯前請閱讀Wiki入門條目編輯規範,並查找相關資料。萌娘百科祝您在本站度過愉快的時光。
Fenfengnigoumeibing.jpg
基本資料
用語名稱 俸俸伲購美病
用語出處 《英雄傳說 空之軌跡SC》簡體中文版玲的台詞亂碼
相關條目 這是何等的靈壓啊老頭滾動條踢牙老奶奶bug父馬可親

fèng購美病出自《英雄傳說 空之軌跡SC》簡體中文版中的翻譯亂碼。

簡介

日本Falcom的RPG遊戲《英雄傳說 空之軌跡SC》在中國發行了簡體中文版,代理商為北京娛樂通科技發展有限公司。

娛樂通的漢化版出現了許多翻譯問題,包括翻譯錯誤、翻譯亂碼。

其中,「殲滅天使」玲的一句台詞「嘿嘿嘿,還好啦。」因為亂碼而顯示成了「俸俸伲 購美病」。

玲說這句話的時候,那一副笑呵呵的表情,配上這句錯誤台詞令人捧腹大笑。這段台詞屬於主線劇情,正常遊戲流程中必然能看到,顯示出娛樂通對文本缺乏最基本的測試與質量控制,由此引發玩家強烈不滿和吐槽。恰好台詞最後一字為「病」,娛樂通的忽視遊戲質量的態度便被諷刺為「俸俸伲購美病」發病,並由此「病」代指遊戲漢化中出現的不該有的錯誤,表達對遊戲漢化質量的不滿。

錯誤代碼技術分析

「嘿嘿嘿,還好啦。」顯示為「俸俸伲�購美病」是由於該句的代碼丟失了第一個字節「BA」。移碼突變[1]

以下為兩句話使用GBK編碼(每個漢字對應兩個字節)的對比。

  • 正常代碼應為:
BA D9 BA D9 BA D9 A3 AC BB B9 BA C3 C0 B2 A1 A3
  • 開頭的BA因為某種原因丟失後,就變成:
D9 BA D9 BA D9 A3 AC BB B9 BA C3 C0 B2 A1 A3

通過編程重現

執行本節代碼須知
  • 若無特別說明,代碼的執行環境是「簡體中文 Windows 系統」。目前不保證在「非 Windows 系統」和/或「非簡體中文語言環境」下的執行結果。
  • 若無特別說明,如果需要先將代碼保存成文件再執行,文件編碼是「簡體中文GBK」(代碼頁為936)。
    • 某些程式語言允許在原始碼文件的頭幾行以注釋的形式指定文件的編碼,比如 Python 和 Ruby。
      • Python舉例: 如果文件編碼為 utf-8,那麼就在文件的第一行或第二行寫上 "# coding: utf-8"。
      • Ruby舉例:如果文件編碼為 utf-8,那麼就在文件的第一行或第二行寫上 "# encoding: utf-8"。
      • 如果不指定,運行時有可能出現編碼轉換相關的錯誤。

Python 2.x

>>> seq = u'嘿嘿嘿,还好啦。'.encode('gbk')

>>> print seq[1:7].decode('gbk'), seq[9:].decode('gbk', errors='ignore')
俸俸伲 购美病

Python 3.x

>>> seq = '嘿嘿嘿,还好啦。'.encode('gbk')

>>> seq[1:7].decode('gbk'), seq[9:].decode('gbk', errors='ignore')
('俸俸伲', '购美病')

C

#include <stdio.h>
#include <string.h>

int main(){
    char str[20];
    memset(str,'\0',sizeof(str));
    strcpy(str,"嘿嘿嘿,还好啦。");
    int i;
    for(i=1;i<20;i++)putchar(str[i]);
    return 0;
}

/* 编译并执行该程序,输出如下内容:

俸俸伲购美病

*/
其他程式語言

AutoHotkey

  • 註:如果安裝 AutoHotkey 時將默認解釋器設置成了Unicode版,需使用ANSI版解釋器(即:AutoHotkeyA32.exe)才能得到正確的輸出。
s := "嘿嘿嘿,还好啦。"
s1 := SubStr(s, 2, 6)
s2 := SubStr(s, 10, 6)
MsgBox %s1% %s2%  ; 显示“俸俸伲 购美病”

Lua

s = "嘿嘿嘿,还好啦。"
print(s:sub(2,7), s:sub(10, -2))      -- 输出:“俸俸伲  购美病”

Node.js

  • 註:
    • 需要「iconv-lite」庫。安裝命令:npm install iconv-lite
    • 將以下代碼保存成文件時,文件編碼必須為「utf-8」。
let iconv = require('iconv-lite');
let buf = iconv.encode('嘿嘿嘿,还好啦。', 'gbk');
const f = function (a, b) { return iconv.decode(buf.slice(a,b), 'gbk'); };
console.log( f(1,7), f(9,-1) );  // 输出:“俸俸伲 购美病”

Ruby

  • 註:若要在Windows平台下使用「irb」程序運行以下代碼,最好加上「-Eutf-8」參數(也就是執行「irb -Eutf-8」),否則可能出現「SyntaxError ((irb):1: invalid multibyte char (GBK))」錯誤。
s = "嘿嘿嘿,还好啦。".encode(Encoding::GBK).force_encoding(Encoding::ASCII_8BIT)
puts s[1..6].force_encoding(Encoding::GBK), s[9..-2].force_encoding(Encoding::GBK)
# 输出:
# 俸俸伲
# 购美病

Vimscript

  • 將以下代碼保存成文件時,文件編碼必須與 Vim 的 "encoding" 選項的值一致。
let s = iconv('嘿嘿嘿,还好啦。', &enc, 'cp936')
echo iconv(s[1:6], 'cp936', &enc) iconv(s[9:-2], 'cp936', &enc)
" 输出:“俸俸伲 购美病”

其他

而其他具有代表性的翻譯錯誤還有「星之在處」(原文為星の在り処,這很明顯犯了君日本語本當上手類錯誤,也可能是直接沒做翻譯)、「先不說我美麗的羽毛」、「遊戲士」(原文為遊撃士,這對文字做簡化也能看出是遊擊士,可能系筆誤)等,有玩家甚至將這些漢化錯誤編成了歌謠傳唱。

娛樂通於2007年9月到2008年2月間先後發布的3版修正補丁,已經修正了遊戲中的基本所有漢化錯誤。

後繼

同系列的《英雄傳說 閃之軌跡III》繁體中文版再次出現嚴重的翻譯質量問題。日語「山津波」被翻譯為「山裡的海嘯」。

這次翻譯嚴重錯誤的鍋不歸娛樂通和之後代理國行零碧軌的歡樂百世,因為繁體中文版的翻譯是另一家公司在做

山裡的海嘯

諷刺的是,患有俸俸伲購美病的前輩,《英雄傳說 空之軌跡SC》簡體中文版在翻譯過程中也遇到了這個詞語,並且前輩正確地將「山津波」翻譯成了「山崩」。

於是此處可以表明,娛樂通在翻譯信達雅上的問題不大,其問題更體現在缺乏測試、校對和版本控制上。將遊戲所有補丁打全後,不難看出娛樂通在翻譯上的水平其實十分優秀。

外部連結

  1. 鹼基對增添、缺失非整3倍個(一個密碼子的鹼基對數)會導致後面的密碼子都改變。