unixで記述したファイル(恐らくはEUCコードと思われます)はDOS環境や、場合によってはunix上のviやlessなどでも、
^M
が行末に表示されてしまいうっとうしいことがあります。
1)この制御コードは一体何なのですか?
2)どのような場合、この制御コードが挿入されますか?あるいは、どのような場合、このコードが表示されるのですか?
3)"^M"が表示されてしまっている場合、どのようにすれば表示がされなくなるのでしょうか?
(その場しのぎ的ではあるが、nkf -s などとしてSJISに変換させれば、dos系のvi や lessではまともに表示されます。他の方法を教えてください...例えば、vi や lessを文字コードを指定して起動するなど...)
#そのほか、文字コード関連でツボが有りましたら教えてください。
No.3ベストアンサー
- 回答日時:
> 1)この制御コードは一体何なのですか?
文字コードの話とは直接関係ありません。OSによって、「改行」を表すコードが違うことがこの現象を引き起こします。
いわゆるDOS系では、改行は 0x0d+0x0a の2バイトで表されます。
unix系では、改行は 0x0a の1バイトで表されます。
> 2)どのような場合、この制御コードが挿入されますか?あるいは、どのような場合、このコードが表示されるのですか?
この制御コードは挿入されるのではなくて、元々「ある」ものです。
unixの流儀で書かれたプログラムが DOS 起源のテキストファイル(*)をそのまま読もうとすると 0x0d が余ります。
それが ^M です。
(*) 例えば、DOS から ftp のバイナリモードでテキストファイルを持ち上げたりするとこういうことになる
> 3)"^M"が表示されてしまっている場合、どのようにすれば表示がされなくなるのでしょうか?
確かにうっとおしいので、有名どころでは対処されています。
今、確認してみたのですが、私が使っている less version 332+iso224 や vim の JVim 3.0-j2.0a なんかでは
先のケースで挙げたようなファイルでも ^M は表示されません。
因みに OS に付属してくる vi では ^M が表示されます。
# というか、^M が表示される方が普通なんですけどね
No.5
- 回答日時:
> #そのほか、文字コード関連でツボが有りましたら教えてください。
ご質問とは関連無いかもしれませんが...。
WindowsマシンからUXIXマシンにFTPソフトでファイルコピー
を行い、さらにそのコピーのとき、「アスキーモード」を指定
しますと、改行コードが変換され、^Mをとってくれます。
なお、FTPソフトはSJISからEUCへの変換もしてくれます。(指定が必要です。)
※FTPソフトは、あるマシンから別のマシンにファイルを
コピーするときに使います。(Windowsのエキスプローラ
で行うファイルコピーと同じようなことをFTPという仕組み
で行います。)
私の経験で^Mが付くときは
・FTPソフトでアスキーモードの指定をしていない
・FTPソフトでアスキー/バイナリ自動判別モードにして
いるが、サフィックスがFTPソフトに登録されていないため、
バイナリでコピーされてします。(例えば .c というサフ
ィックスが登録されていないなど。)
です。
いろいろ原因はありえると思いますが。
参考URL:http://www.vector.co.jp/soft/win95/net/se061839. …
No.4
- 回答日時:
横レスです。
y2000さんのやり方で、
:%s/^M//
では^Mを入力した時点でコマンドが解釈されてしまうので
:%s/^V^M//
と入力しましょう。
(言うまでもないと思いますが、^V, ^M はそれぞれ
Ctrl+V, Ctrl+M です。)
No.1
- 回答日時:
1)、2)
windowsなどで書かれた英数字のみのテキスト文章をLinuxで読むと改行ごとに^Mが残ってしまうようです。
3)
他の方法としては
viで
:%2/^M//
と入力すると削除できるようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/11/29 14:08
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows11での画面キャプチャー...
-
windows11でクイックスキャン等...
-
エクスプローラのアクティブウ...
-
Windowsで大量の画像サイズを半...
-
Windows Media Playerを開くと...
-
Mac用の外付けHDはWindowsPCで...
-
Windows11のデスクトップのアプ...
-
SSDの完全に消してしまったファ...
-
ゼロからのOS自作入門について
-
アイコンに、四角い枠が出来て...
-
Windows11の画面の色が薄いので...
-
Office製品のファイルの履歴が...
-
デスクトップアイコンが勝手に...
-
勝手に無変換になる
-
Macパソコン使ってる人ってどー...
-
Windowsの古いゲーム(32bit OS...
-
Microsoftのページだけ全て「申...
-
windows11 きれいなロック画面...
-
.txtって、縦書きにはならない...
-
バーチャルボックスでUbuntuを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windowsアップデートしたらタス...
-
アイコンに、四角い枠が出来て...
-
Windowsの古いゲーム(32bit OS...
-
windows11でクイックスキャン等...
-
windows11におけるファイルの並...
-
Windows Media Playerを開くと...
-
エクスプローラのアクティブウ...
-
.txtって、縦書きにはならない...
-
MS-DOS 6.22のダウンロード
-
マザーボードを交換した時のOS...
-
ディスククリーンアップが終わ...
-
Windows11 システム通知音がも...
-
Microsoftのページだけ全て「申...
-
Raspberry Pi 3 A+ ブラウザ遅い
-
Windowsで大量の画像サイズを半...
-
Windows11の画面の色が薄いので...
-
VirtualBoxのゲストOS起動時にU...
-
Windows11のサービスホストとは?
-
OPPOのRENOシリーズのOSのアプ...
-
Windows 11でPCやネットワーク...
おすすめ情報