首页 > 解决方案 > 为什么awk打印中文字符

问题描述

在我使用 AWK 的这些年里,我从来没有遇到过这样的事情。
我已经尝试过 gawk 和 mawk。

我已将 awk 脚本缩减为

 { print }

应该只回显每一行。但是每隔一行打印就好像它在不同的代码页上一样。

文件是通过从 Access 导出来创建的,因此:

Dim oApplication
Set oApplication = CreateObject("Access.Application")
oApplication.OpenAccessProject sFileName
For Each myObj In oApplication.CurrentProject.AllForms
    WScript.Echo "Exporting FORM " & myObj.FullName
    oApplication.SaveAsText acForm, myObj.FullName, sExportpath & "\" & myObj.FullName & ".form"
    oApplication.DoCmd.Close acForm, myObj.FullName
    dctDelete.Add "FO" & myObj.FullName, acForm
Next

生成的源文件看起来像

Operation =1
Option =0
Begin InputTables
    Name ="Fee Types"
End
Begin OutputColumns
    Expression ="[Fee Types].ID"
    Expression ="[Fee Types].Type"
    Expression ="[Fee Types].Category"
End

输出看起来像

Operation =1
਍伀瀀琀椀漀渀 㴀 ഀഀ
Begin InputTables
਍    一愀洀攀 㴀∀䘀攀攀 吀礀瀀攀猀∀ഀഀ
End
਍䈀攀最椀渀 伀甀琀瀀甀琀䌀漀氀甀洀渀猀ഀഀ
    Expression ="[Fee Types].ID"
਍    䔀砀瀀爀攀猀猀椀漀渀 㴀∀嬀䘀攀攀 吀礀瀀攀猀崀⸀吀礀瀀攀∀ഀഀ
    Expression ="[Fee Types].Category"
਍䔀渀搀ഀഀ
਍

执行与

 gawk.exe -f "FilterBinary.awk"  input.txt > output.txt

标签: windowsawk

解决方案


嗨,我按照您的步骤操作,得到了相同的输出和输入:

Operation =1
Option =0
Begin InputTables
    Name ="Fee Types"
End
Begin OutputColumns
    Expression ="[Fee Types].ID"
    Expression ="[Fee Types].Type"
    Expression ="[Fee Types].Category"
End

推荐阅读