トップ «前の日記(2008-09-22) 最新 次の日記(2008-09-24)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2008-09-23

_ UTF-8のBOMについて

木村さんのところ

データファイルを読むのはアプリケーションなので、どうでも良いことのように思います。それをどうするかはアプリケーションが決めれば良い。

C:\Users\arton\tmp>type u8.rb
・ソ#!/usr/bin/ruby -Ku      ← typeが妙なものを出すのはどうかとは思うが、それはCPが違うので良いとして
puts('hello')
 
C:\Users\arton\tmp>ruby -v u8.rb
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32] ← なすすべがない
u8.rb:1: Invalid char `\357' in expression
u8.rb:1: Invalid char `\273' in expression
u8.rb:1: Invalid char `\277' in expression
 
C:\Users\arton\tmp>ruby -vKu u8.rb
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32] ← 打つ手もない
u8.rb:1: undefined local variable or method `・ソ' for main:Object (NameError)
 
C:\Users\arton\tmp>set PATH=c:\home\ruby-1.9\usr\bin;%PATH%
 
C:\Users\arton\tmp>ruby -v u8.rb
ruby 1.9.0 (2008-08-26 revision 18849) [i386-mswin32] ← やっほー
hello

というわけで、1.9を使おう! という結論。

多分、PATHの設定の戻し忘れか何かで1.9をいじっているときに1.8を動かして、BOM付きutf-8のスクリプトを処理できないと勘違いしたのだと思う。で、そう思ったまま32982を読んだので、BOM付きスクリプトの扱いもユーザー側に投げられたのかとさらに勘違いをしていた、ということでした。

_ なんか変だな

typeが相変わらず先頭に妙なものを出すのはともかく、

cp65001での状態

なぜ、putsの結果に余分なものが入るんだ?(むしろcmd.exeかコンソールのウィンドウシステムを疑っている。というのは、typeの結果も選択-反転を一度しないと正しく表示されないから)

_ MI

同じく木村さんのところのリスト。

SQLの書式設定ではMIを使うから、まったく違和感はないけど、そんなに変なものなのかな?

例)select to_timestamp('11:23:58', 'HH:MI:SS');

DB2とかだと違うのかも。

(単に異文化への無知から指摘しているのでなければ良いが、SQLを組み立てるための文字列ならむしろわかりやすい名前でしょう)

本日のツッコミ(全4件) [ツッコミを入れる]
_ mei (2008-09-23 12:50)

OracleもMIですね。→select to_char(sysdate, 'HH:MI:SS') from dual;

_ arton (2008-09-23 15:49)

dualが肝ですねぇ。>Oracle

_ naruse (2008-09-24 02:38)

win32-unicode-testブランチもご覧頂けるとおもしろいかと思います。コンソールのCodePageを無視してUnicodeで表示、とか。(いや、現状それくらいしかありませんが)

_ arton (2008-09-24 03:01)

それって、こないだruby-devに出されていた雪ダルマのやつですか? 確かにあれが標準になるとCMDクラッジ(無理矢理日本文字付きTTフォントの設定)しなくて済むのでうれしいかも。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|

ジェズイットを見習え