ファイルに追加すると、一部の文字が変換されます。

ファイルに追加すると、一部の文字が変換されます。

接続文字列をsocatに渡すことを含むスクリプトを作成しています。

コマンドラインに貼り付けると正常に動作しますが、ファイルを開いてそこに貼り付けると(pico filename.sh)文字が別のものに変換され、接続文字列が失敗します。

問題のコードは次のとおりです。

conTest=$(echo -e -n "@\0\0'{abcde\0fghij\0Ç\x01Ó|" | socat STDIO tcp4:127.0.0.1:12345)

問題のキャラクターは次のとおりです。

0Ç\x01Ó

これは次のように翻訳されます。

0�\x01�

変換を防ぐ方法はありますか?

私はWindows 7 PCでputty(ssh)を使ってこのコンピュータ(Debian)に接続しています。

私の初期テキストは私のWindows PCのnotepad ++ファイルにあります。その後、そこからDebianサーバーのコマンドラインにコピーして貼り付けました。これを実行するとうまくいきます。

picoを使ってファイルを開き、pico test1.shテキストをコピー/貼り付けると大丈夫です。ただし、保存しようとすると(ctrl-O)文字が変更されます。

その後、実行するとfile test1.sh次のように表示されますtest1.sh: Bourne-Again shell script, ISO-8859 text executable

実行するとどのキャラクターなのかiconv -f ASCII -t UTF-8 test1.shわかります。illegal input sequence at position 263Ç

nanoを使用しようとすると、nano test2.shコピー/貼り付けが機能せず、問題の文字の後に別の文字が表示されます。また保存しようとすると同じ現象が発生します(文字が変わる現象)。

次に、sftpを使用してファイルをコピーしようとしました。 test3.shにコピーしてサーバーでviとして開きましたvi test3.sh。これは同じ問題を示しています質問文字が置き換えられます。

しかし走るfile test3.sh私にtest3.sh: Bourne-Again shell script, UTF-8 Unicode text executable

私はsftpを介してファイルを再コピーして私のWindowsコンピュータで開き、すべての文字が大丈夫で、sftpプロセスに問題がないことを示します。

ベストアンサー1

おすすめ記事