文字檔 *.txt 儲存成 UTF-8 格式 (3)

在前文中,有提到手動方式用 NotePad (記事本) 開啟文字檔案,再以另存檔案、改變編碼成 UTF-8 來儲存,產生 UTF-8 格式的檔案。

不過,這種方式若是遇到很多檔案要轉換時,就會勞民傷財且傷身,我想這事我絕對不做。
那怎麼辦呢?

用程式來解決吧 (以下作業,可以不用明白其原理,只要照著做就能一切順利 -- 這是主賜的平安)

  1. 開啟 記事本(NotePad) 程式
  2. 打入下列內容
    ----------copy-inside-only----------
    Const ForReading = 1, ForWriting = 2, TristateTrue = -1, TristateFalse = 0
    Dim objFSO, objFile, strg
    Dim arg1, arg2

    If WScript.Arguments.Count = 0 Then
       WScript.Echo "No argument on the command line."
       WScript.Echo "usage: Ans2UTF8.vbs SourceFile TargetFile"
       WScript.Quit
    End If

    Set args = WScript.Arguments
    arg1 = args.Item(0)
    arg2 = args.Item(1)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(arg1, ForReading, False, TristateFalse)
    strg = objFile.ReadAll()
    objFile.Close
    Set objFile = Nothing Set objFile = objFSO.OpenTextFile(arg2, ForWriting, True, TristateTrue)
    objFile.Write(strg)
    objFile.Close
    Set objFile = Nothing
    ----------copy-inside-only----------

  3. 存檔,檔名為 Ansi2UniCode.vbs
  4. 再建立一個 Excel 檔案:簡體2UniCode.xls
  5. Excel 內容如下

    A

    B

    C

    1

    檔案目錄 位置 C:\Ch05\  

    2

    轉碼程式 Ansi2UniCode.vbs  

    3

    檔案名稱清單(代轉) 檔案名稱清單(轉換) 開啟檔案的指令

    4

    ex5-1.php ex5-1_tc.php Ansi2UniCode.vbs C:\Ch05\ex5-1.php C:\Ch05\ex5-1_tc.php

    5

    ex5-10.php ex5-10_tc.php Ansi2UniCode.vbs C:\Ch05\ex5-10.php C:\Ch05\ex5-10_tc.php

  6. 其中 B4 儲存格內容為 =LEFT(A4,LEN(A4)-4) & "_tc" & RIGHT(A4,4)
    同理 B5 儲存格內容為 =LEFT(A5,LEN(A5)-4) & "_tc" & RIGHT(A5,4)
    以下類推,Excel 公式拉一下,就完成了。
  7. 那 C4, C5 儲存格內容,就會是

    C4

    =IF(A4="","",$B$2 & " " & $B$1 & A4 & " " & $B$1 &B4)

    C5

    =IF(A5="","",$B$2 & " " & $B$1 & A5 & " " & $B$1 &B5)

  8. 依照代轉檔案的數量(填在 A4 以下的位置),調整 B4、C4 以下的公式內容。記得要存檔。
  9. 接下來,要上演重頭戲:轉碼作業
    ● 在控制台中,改變 中文(PRC)
    ● 重新開機
    ● 開啟 命令列 (cmd.exe)
    ● 變更現行目錄到 Ansi2UniCode.vbs 存檔的目錄中
    ● 再開啟 Excel 檔 簡體2UniCode.xls ,並選取 C4 以下的內容,Copy。
    ● 回到命令列視窗中,貼上剛才複製的處理指令,就可以在 檔案目錄位置(B2內容) 中的目錄,
        看到新產生的文字檔,它們的檔案格式就會是 UniCode。(注意:還不是 UTF-8
        格式:UTF-16LE

沒有留言: