0

Powershell でコマンドライン スクリプトを実行し、そのダンプを作成します。

PS> cmd /c D:\script.bat | tee ~/out.log

次に、このログを vim で開くと、おおよそ次のように表示されます。

яю^M^@
^@C^@:^@\^@U^@s^@e^@r^@s^@>^@s^@e^@t^@ ^@D^@E^@B^@U^@G^@_^@F^@U^@L^@F^@I^@L^@L^@M^@E^@N^@T^@=^@-^@X^@r^@u^@n^@j^@d^@w^@p^@:^@t^@r^@a^@n^@s^@p^@o^@r^@t^@=^@d^@t^@_^@s^@o^@c^@k^@e^@t^@,^@a^@d^@d^@r^@e^@s^@s^@=^@3^@0^@0^@4^@,^@s^@e^@r^@v^@e^@r^@=^@y^@,^@s^@u^@s^@p^@e^@n^@d^@=^@n^@ ^@^M^@

そして16進ダンプ:

0000000: d18f d18e 0d00 0a00 4300 3a00 5c00 5500  ........C.:.\.U.
0000010: 7300 6500 7200 7300 3e00 7300 6500 7400  s.e.r.s.>.s.e.t.
0000020: 2000 4400 4500 4200 5500 4700 5f00 4600   .D.E.B.U.G._.F.
0000030: 5500 4c00 4600 4900 4c00 4c00 4d00 4500  U.L.F.I.L.L.M.E.
0000040: 4e00 5400 3d00 2d00 5800 7200 7500 6e00  N.T.=.-.X.r.u.n.
0000050: 6a00 6400 7700 7000 3a00 7400 7200 6100  j.d.w.p.:.t.r.a.
0000060: 6e00 7300 7000 6f00 7200 7400 3d00 6400  n.s.p.o.r.t.=.d.
0000070: 7400 5f00 7300 6f00 6300 6b00 6500 7400  t._.s.o.c.k.e.t.
0000080: 2c00 6100 6400 6400 7200 6500 7300 7300  ,.a.d.d.r.e.s.s.
0000090: 3d00 3300 3000 3000 3400 2c00 7300 6500  =.3.0.0.4.,.s.e.
00000a0: 7200 7600 6500 7200 3d00 7900 2c00 7300  r.v.e.r.=.y.,.s.
00000b0: 7500 7300 7000 6500 6e00 6400 3d00 6e00  u.s.p.e.n.d.=.n.
00000c0: 2000 0d00 0a                              ....

毎回これらのヌルを削除する手間をかけずに、そのようなファイルを通常どおり開くようにvimを構成するにはどうすればよいですか? PS メモ帳は、null を表示せずにファイルを開きます

4

2 に答える 2

2

ファイルは UTF-16 でエンコードされています。各文字は 2 バイトで表されます (下端が最初に来ます)。

'encoding'ファイル内の文字を表すことができるものに設定されている限り(utf-8推奨されますが、そうでlatin1はありません)、これで問題ありません。いじる必要はありません。

ファイルのエンコーディングを Vim に伝える必要があります。開くときに明示的に

:edit ++enc=utf-16le out.log

または、(一意に識別できる BOM を含むファイルの後に) 値を前に追加することによって'fileencodings':

:set fileencodings=ucs-bom,utf-16le,utf-8,default,latin1
于 2012-07-20T10:08:14.467 に答える
0

あなたのファイルはUTF8でエンコードされているようです。

それを開くには、次のようにエンコーディング引数を指定してvimを起動します。

vim "+set encoding=utf-8"

または、すでにファイルを編集している場合は、次のようにエンコードを設定できます。

:set enc=utf-8
于 2012-07-20T08:48:34.970 に答える