補足
シフトJISの扱いについて
シフトJISコードには、バイト単位で見た場合、 SGFのデータ構造に影響を与える"\"や"]"が含まれています。 そのため、ファイルの入出力時に、文字単位とバイト単位の どちらで処理するか決める必要があります。
処理単位
利点
欠点
バイト単位
他の文字コードと扱いが共通するので、データの入出力時に文字コードを 指定する必要がない。
主に海外のソフト。
直接ファイルを見ると、"\"や"]"が変な箇所に現れ、文字化けが生じる。
文字単位
(マルチバイト)
直接ファイルを見ても、文字化け等がない。
主に日本のソフト。
データの入出力時に、文字コードを正しく指定する必要がある。
このソフトでは、どちらにも対応できるようにしていますが、自動的に判別す ることは難しいため、適宜、手動でオプションを切り替える必要があります。
この処理単位の切替が働くのは次の2通りのケースです。
ファイル内で文字コードがシフトJISに指定されている場合。
ファイル内で文字コードの指定がない場合で、オプションで標準の文字コー ドとしてシフトJISを選択している場合。
要するに、シフトJISとしてファイルを扱う場合です。
説明が長くなりましたが、海外のソフトと併用しない場合は、 「文字単位」の方を選択しておけば問題ないと思います。
URLを開く
URL (Uniform Resource Locator) とは、「プロトコル://マシン名/ファイル 名」で表されるアドレスのことで、ブラウザのアドレス欄に表示されているも のです。プロトコルとしは、httpがよく使われますが、このソフトでは、 http以外に file, ftp, gopher も利用できます。
「プロトコル://マシン名/」を省略しファイル名だけを入力すると、 ディスク上のファイルが開きます。
インターネット上のSGFファイルを開く場合、通常のファイルとは異なる扱い をする場合があります。(オプションの指定を無視する場合もあります)
ファイルを開く前の処理
javascript:xxx('***')の処理
棋聖道場
・
新浪囲棋
などでは、ファイルへの直接リンクが 張られていないので、特別な処理が必要になります。
"javascript:"で始まる場合、以下の処理を行います。
最初の"("から次の")"まで切り出し。(失敗した場合、無反応のまま終了)
前後の"(", ")", "'", """, 空白文字を削除
"http://"で始まらない場合 (
棋聖道場
)、 以下の処理で追加。
"../dqipu.php?id=0000" → http://weiqi.tom.com/php/dqipu.php?id=0000
"php/dqipu.php?id=0000" → http://weiqi.tom.com/php/dqipu.php?id=0000
"/pu/0000.html" → http://weiqi.tom.com/pu/0000.html
それ以外は、無反応のまま終了。
"http://"で始まるURLへの変換終了。
"http://weiqi.tom.com/", "http://weiqi.sports.tom.com/" で始まる場合、 sgfファイルへのアドレスではないので、以下の処理を行う。
"/pu/", "/php/dqipu.php?id=" が含まれる場合、このURLを開き、その中にあるsgfファイルへのURLを取り出す。
それ以外は、無反応のまま終了。
以上の処理で得られた"http://"で始まるURLを使って、通常の"ファイルを開く"処理を行う。
"http://www.asahi.com/igo/kifu"で始まるが、"http://www.asahi.com/igo/kifu/" ではない場合。"/igo/kifu30/", "/igo/kifu31/"など。
末尾の".html"を".ugf"に変換。
ファイルを開いた後の処理
HTMLファイルの場合("<html"または"<HTML"を含む場合)
HTMLファイルに特有のタグや特殊な文字を変換・削除します。
"<br>"→改行、"<"→"<"、">"→">"など
囲碁の棋譜でーたべーす
では1回で<br>を取り除けないので、2回この処理を行う。
文字コードとしてシフトJISが指定されている場合 ("charset=Shift_JIS"を含む場合)
強制的にシフトJISの文字単位で処理を行います。
(
囲碁・将棋@2ch
のスレの読み 込みをスムーズにするため)
文字コードとしてEUC-JPが指定されている場合 ("charset=EUC-JP"を含む場合)
文字コードを"EUC-JP"に指定。("CA[EUC-JP]"の挿入)
(主に
囲碁の棋譜でーたべーす
に対応するため)
URLに"weiqi.sports.tom.com"が含まれる場合
棋聖道場
文字コードを"GB2312"に指定。("CA[GB2312]"の挿入)
URLに"www.sinago.com"が含まれる場合
新浪囲棋
文字コードを"GB2312"に指定。("CA[GB2312]"の挿入)
SGF規格外の部分の修正。("(TE[...]" → "(;EV[...]")
本譜が分岐の先頭になるように移動。
変化図が第一手からの繰り返しになっているのを、PT[xx]で指定されている数だけ削除。
URLに"http://www.asahi.com/igo/kifu/"が含まれる場合 → converters/asahi.exe
URLに"http://nec-igo.com/"が含まれる場合 → converters/nec-igo.exe
URLに".UGF", ".ugf"が含まれる場合 → converters/UGF.exe
以上、作者が不便に感じた所を使いやすくしたつもりですが、 場当たり的措置なので混乱を招くかもしれません。
他のサイトについても特別な対応が必要なケースがあればお知らせ下さい。