管理人の趣味メインのメモto日記
AIONブログ RSS [情報サイト表示]
[注意] LinkやRSSについて

シエルサーバ RSS [情報サイト非表示]

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ -------- (--) --:-- ]  
   Category:スポンサー広告


・ω・)ノ
 
どこでもいっしょ・・・・ (-ω-
 
 
<本日のトピックス>
[雑 記] 改行コードあかさたな
 
 
[雑 記] 改行コードあかさたな
文字コード、改行コード、エンディアン・・・・、一般の家電製品と同じように
現状、この辺はOS(一部CPUのアーキ)ごとに独自の企画を採用しており、
共通性がありません。
 
基本的に1つのOS上でアプリケーションを作成する場合、こ差異による問題は
まったく影響しないのですが、例えばC/Sなどのシステムの場合、S(サーバ)側に
Unixだったり、Linuxだったりを採用し、C(クライアント)側にWindowsを
採用する事が多く、こうした場合気を付ける必要があります。
 
で・・・・、今回は簡単な改行コードのお話・・・・。
 
 
改行コードは、現在利用されることが多いOSでは3種類存在します。
 
 Windows : CR + LF
 UNIX、Linux : LF
 Mac : CR
 
となっています。
各々の名称、ASCIIコードは以下のようになっています。
 
 CR(Carriage Return) : 0x0D
 LF(Line Feed、newline など) : 0x0A
 
で、これの何が困るの(落とし穴なの)?と言うお話は、まず簡単な話で
言いますと、例えば以下のような文章を作成するとします。
 
 テスト、文章。
 2行目です。
 
上記のような2行からなる文章を作成した場合、バイナリで考えると目には見えない
改行コードが1行目と2行目の間には存在します。Windowsで作成した場合
 
 テスト、文章。(0x0D 0x0A)
 2行目です。
 
なのに対して、UNIX、Linuxの場合
 
 テスト、文章。(0x0A)
 2行目です。
 
となるのです。当然、Windowsの方が容量的に1byte多かったりもします。
ここまでは前置きで・・・・、プログラミングで文字を扱う再の改行として・・・・
無意識のうちに、"\n"、"/n"と言う制御コードを使う事が多いと思います。
自分もそうしてました(CでもJavaでも)。
 
基本的に、これで改行されるのですが、この文字列をファイル出力する場合
問題が発生することがあります。そもそも"\n"は、Newlineの意でASCIIコード的には、
0x0Aを提供してくれます。つまり、Windows上で出力した場合、改行コードとして
認識してくれない可能性があるのです(テキスト エディタ等の改行コードを
変換してくれるアプリケーションは別)。
 
Windows上で正確に改行コードと認識させるためには"\r\n"とする必要があるわけです。
ちなみに、ASCIIコード的に\rは0x0D。
 
OSごとに、改行コードが異なる可能性があるとか、Windowsの改行コードは2byteとか
理解していても、結構、見落としがちな改行コードの問題でした。
 
 
 
自分も、つい先日・・・・副職の方ではまってました (-ω-;
 
 

スポンサーサイト
[ 2013-03-19 (Tue) 12:00 ]   Comment(0)
   Category:雑記:IT関連
管理者にだけ表示を許可する

TrackBackURL
→ http://extremes.blog40.fc2.com/tb.php/661-acca216d
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。