2012-01-24 18 views
0

Latin1でエンコードされたmySQLテーブルで動作するデータクリーンアップスクリプト(MS Smart Quotesなど)を作成しています。データをスキャンしている間に、私は0D 0Aの大部分に改行があることに気付きました。データの改行と改行:0D 0A

データを消去しているので、0Dもすべて削除する必要がありますか?もう0D(キャリッジリターン)を保つ理由がありますか?

ありがとうございます!

答えて

2

0D0A(\ r \ n)、0A(\ n)は改行記号です。 \ r \ nは主にOSのWindowsで使用され、UNIXシステムでは\ n使用されます。

0Dをもう1つ保つ理由はありますか?

私はあなた自身でこの質問に答えるべきだと思います。 データから '\ r'を削除することはできますが、このデータを使用するプログラムでは '\ n'は行の最後を意味することを理解していることを確認してください。ほとんどの場合、それが考慮されますが、場合によってはチェックします。

1

CR/LFの組み合わせはWindowsのものです。 * NIXオペレーティングシステムはLFを使用します。したがって、データを使用するアプリケーションに基づいて、CRを除外するかどうかを決定する必要があります。詳細はWikipedia entry on newlineをご覧ください。

0

Pythonのreadline()は、\ O12の後に続く行を返します。 \ Oは8進数を意味します。 12は10進数の10進数です。ASCIIテーブルでは、Dec 10がNLまたはLFであることがわかります。改行または改行。

UNIXテキストまたはスクリプトファイルの行末の標準。

http://www.asciitable.com/

ですから、EOF LEN(過ぎて読み取ろうとしない限り、lenが()ゼロになることはありません)NLが含まれることに注意してください。

したがって、Pythonのreadline()で得られたテキスト行をmysqlテーブルにINSERTすると、デフォルトでNL文字が最後に追加されます。