[pgsql-jp: 33596] Re: EOFの問題について

Ryutaro Amano wn9r-amn @ asahi-net.or.jp
2004年 7月 9日 (金) 20:07:03 JST


天野です。

MacOSX10.3.4にPostgreSQL7.4.3をインストールしています。
今回の問題は、インポートする際のファイルの改行コードの問題かと思います。

PGSQL自体からは、離れますが、現状のMacOSXの改行コード及び、UTF-8での行末の\
nについて私のわかる範囲で書いてみます。

まず、旧MacOS(OS9まで)は文所は通常はSJISで改行コードは、 rでした。
現在でも普通のOSX用のエディターは、デフォルトの状態で日本語文書を保存すると、
文字符号化方式は、SJISで改行コードは、 rで保存されるものが多いようです。
ただし、OSX付属のアップル純正「テキストエディタ」は、文字符号化方式はいろい
ろ選べますが、改行コードは、 n固定です。
また、付属のTerminalで従来の改行コード rの文書をcatすると当然きちんと表示さ
れません。
Terminalの文字符号化方式はデフォルトはUTF-8です。
この辺はFedora Coreと似ているかも。手動でいろいろ選べますが。

文書をUTF-8で保存して改行コードを nで保存すると、今回のスレッドで出てきたよ
うにエディターによっては問題が出てきます(今回問題となっているcopyしたい文書
そのものの文字符号化方式はEUC-JPらしいので関係ないかもしれませんが)。
[pgsql-jp:33588]
http://vivian.stripper.jp/index.php?itemid=141

例えば、OSX用の定番エディタの一つとして、JEditというものがありますが,このエ
ディタで
以下のCのソースをUTF-8で保存してgccして実行すると
------------------------------------------------------
#include <stdio.h>

int main(int argc,char* argv[]){
    printf("%f\n",20.0);
    return 0;
}
-------------------------------------------------------
以下のようになります。

--------------------------------------------------------
[19:10:46 ryuamano:~/myc]
$ ./test.out 
20.000000\n[19:10:53 ryuamano:~/myc]
-------------------------------------------------------

もちろんこの問題は認識されており、例えば「mi」というエディタには初期設定で、
以下のチェックボックスがあります。

------------------------------------------------------------------------
Unicode保存/コピー時、\をバックスラッシュ(0x005c)で保存コピーする
*Offにすると\は、円マーク(0x00A5)で保存/コピーされます。
*下の新JISオプションをOnにすると表示にも反映されます。
------------------------------------------------------------------------
こういうエディタを使えばUTF-8保存時の行末の n問題は回避できます。
また、前述のApple純正のテキストエディタで「テキスト」モードでの保存ならこの
問題は起きません。Terminal上で、viなどで入力すればもちろん問題なしです。

ということで、今回のスレッドに戻りますが、問題のインポートしたいファイルはど
のようにして、つまり何というエディタ、あるいはワープロソフトで作られたのでし
ょうか?
この辺を知りたいかなと。実際の行末コードがどうなっているかは多くの方の指摘に
ある方法でわかります。

Ryutaro Amano
wn9r-amn @ asahi-net.or.jp



pgsql-jp メーリングリストの案内