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

在前文中,提到手動方式用 NotePad (記事本) 並改變編碼來產生 UTF-8 格式的檔案。
但是,若是用程式來轉換,是乎只能轉成 UniCode (UTF-16) ,還不是 UTF-8 格式;那麼是不是還有其他辦法?

有的,不過不是用 Scripting.FileSystemObject,而是用 ADODB.Stream 。
以下,就實際演練一次:

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

  1. 開啟 記事本(NotePad) 程式
  2. 打入下列內容
    ----------copy-inside-only----------
    Option Explicit

    Const ForReading = 1, ForWriting = 2, TristateTrue = -1, TristateFalse = 0
    Dim objFSO, objFile, strg, objADODBStream
    Dim args, arg1, arg2

    If WScript.Arguments.Count = 0 Then
       WScript.Echo "No argument on the command line."
       WScript.Echo "usage: Ansi2UniCode_UTF-8.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 objADODBStream = CreateObject("ADODB.Stream")
    objADODBStream.Charset = "UTF-8"
    objADODBStream.Open
    objADODBStream.WriteText strg
    objADODBStream.SaveToFile arg2, 2
    objADODBStream.Close
    Set objADODBStream = Nothing
    ----------copy-inside-only----------

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

    A

    B

    C

    1

    檔案目錄 位置 C:\Ch05\  

    2

    轉碼程式 Ansi2UniCode_UTF-8.vbs  

    3

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

    4

    ex5-1.php ex5-1_tc.php Ansi2UniCode_UTF-8.vbs C:\Ch05\ex5-1.php C:\Ch05\ex5-1_tc.php

    5

    ex5-10.php ex5-10_tc.php Ansi2UniCode_UTF-8.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_UTF-8.vbs 存檔的目錄中
    ● 再開啟 Excel 檔 簡體2UniCode_UTF-8.xls ,並選取 C4 以下的內容,Copy。
    ● 回到命令列視窗中,貼上剛才複製的處理指令,就可以在 檔案目錄位置(B2內容) 中的目錄,
        看到新產生的文字檔,它們的檔案格式就會是 UTF-8

沒有留言: