macOSは「¥(円マーク)n」と「\(バックスラッシュ)n」を区別するから気をつけよう

最近python始めた。

チャットbot作る教材使って勉強してたんだけど。

発言するデータの入ってるファイルを読み込むとき、何か挙動がおかしかった。

 

改行コード「¥(円マーク)n」を消す処理がうまくいってなかった。

「¥(円マーク)n」と「\(バックスラッシュ)n」は違う

どうやら、macOSは「¥(円マーク)n」と「\(バックスラッシュ)n」を区別するらしく。。。

 

動作確認してみたら、ほかの文字はしっかり消せるのに、「¥(円マーク)n」だけはダメだった。

 

macOSでは「option+¥(円マーク)」で、「\(バックスラッシュ)」を明示的に入力できる。

 

pythonだけなのかと思って、試してみたら、javaでも同様の現象が起きた。

class ntest {
public static void main(String args[]) {
String test1 = "abc¥nefg";
String test2 = "abc\nefg";
System.out.println(test1);
System.out.println(test2);
}
}

↓出力結果

abc¥nefg

abc

efg

 

試してないけど、ほかの言語でもおんなじだと思う。

 

windowsでは起きない。

 

macOSでは「¥(円マーク)」はエスケープシーケンスとして認識しないらしい。

 

これから気をつけようと思った。

おすすめの記事