配合記事本的 BIG5 轉 UTF-8 工具原始碼

摘要:配合記事本的 BIG5 轉 UTF-8 工具原始碼

昨天為了安裝 phpBB2 的 attachment_mod 的中文化,花了許多時間,事實上,已有網友提供 attachment_mod 中文化檔案,不過,用的是 BIG5 碼,但 phpBB2 已設定使用 UTF-8 無法使用。
一開始,先用自己寫的 StatPlus 內碼轉換工具,可能是因為 BCB5 元件支援 UniCode/UTF-8 的能力不足,轉出來的有 ?? 再貼回去,還是無法使用。 最後,用記事本開啟相關 php 檔(請參考從無到有 phpBB2 + 檔案上傳 + 中文化 安裝)直接另存新檔,在另存新檔對話視窗中選擇編碼為 UTF-8,再存檔。 存完的檔案,其檔頭有 3 碼是告知編輯軟體此檔是使用 UTF-8 編碼的檔案,而這 3 碼,在 php 系統則是不允許的碼,會變成載不入。 (以上都是看 Apache 控制台內的 php error log 訊息得知的喔) 還是動手寫個程式吧:

  1. void __fastcall TForm1::Button1Click(TObject *Sender)  
  2. {  
  3.   if(this->OpenDialog1->Execute())  
  4.   {  
  5.     TFileStream *Stream=new TFileStream(this->OpenDialog1->FileName,fmOpenRead);  
  6.     TFileStream *Output=new TFileStream(this->OpenDialog1->FileName+".u",fmCreate);  
  7.     Stream->Position=3;  
  8.     Output->CopyFrom(Stream,Stream->Size-3);  
  9.     delete Stream;  
  10.     delete Output;  
  11.   }  
  12. }  
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if(this->OpenDialog1->Execute())
  {
    TFileStream *Stream=new TFileStream(this->OpenDialog1->FileName,fmOpenRead);
    TFileStream *Output=new TFileStream(this->OpenDialog1->FileName+".u",fmCreate);
    Stream->Position=3;
    Output->CopyFrom(Stream,Stream->Size-3);
    delete Stream;
    delete Output;
  }
}

這樣,就可以把記事本另存的 UTF-8 的檔案,再另存一份給 php 用。