どこかに回答があったらすみません。どのように見つけるべきかわかりません。銀行から処理する必要がある一連のレポートを受け取りましたが、そのレポートが...誤ってエンコードされているようです。
VIMの最初の2行:
1 ^M^@
2 ^@:^@2^@0^@:^@3^@0^@4^@0^@7^@1^@9^@^M^@
たとえば、geditの同じ2行は次のようになります。
1
2 :20:3040719
何が起こったのか教えてくれる人はいますか?またはを使用してファイルを開くことはfenc=utf8
重要ではありませんfenc=cp1250
(これはこれらのファイルが使用する必要があるエンコーディングです)。fenc=ucs-bom
エンディアンと関係があると思って試してみましたが、やはり何の変化もありませんでした。私は^@
それがnullで、^M
Windowsスタイルの改行(CRLF)であることを知っていますff=dos
がff=unix
。
同じ銀行に古いファイルがありましたが(いくつかの変更が適用される前)、うまくいきました。破損したファイルには次file
の内容が表示されますが、次のように表示されます。extended-ASCII
data
$ file *sta
20220411_182719.sta: Non-ISO extended-ASCII text, with CRLF line terminators
20220412_071916.sta: data
VIMはこれらの文字を置き換えてファイルを処理できますが、PHPを使用して1日に何千ものファイルを自動化する必要があり、実際にはVIMを使用できません。理想的には、銀行サポート担当者に彼らが何を台無しにしたかを伝えることです。
ベストアンサー1
わかりました。見つけました。それはUTF-16 Little Endian
。
:e ++enc=utf16le
これで処理時に正しく変換できます。