[#34204] 「プログラミング Ruby 」 p.257 defined? はメソッド? — Noritsugu Nakamura <nnakamur@...>

15 messages 2002/03/05
[#34205] Re: 「プログラミング Ruby 」 p.257 defined? はメソッド? — nobu.nakada@... 2002/03/05

なかだです。

[#34244] しぶらぐっ議事録。 — rubiben <ozaki@...>

48 messages 2002/03/08
[#34250] Re: しぶらぐっ議事録。 — Minero Aoki <aamine@...> 2002/03/09

あおきです。

[#34246] Re: しぶらぐっ議事録。 — rubikitch <rubikitch@...> 2002/03/08

From: rubiben <ozaki@ruby-lang.org>

[#34448] 文字コード混在スクリプトの実行 — Noritsugu Nakamura <nnakamur@...>

14 messages 2002/03/16

[#34453] カレンダー文字列を作るメソッド — Take_tk <ggb03124@...>

たけ(tk)です。

13 messages 2002/03/16

[#34534] スクリプティング言語における GPL — Taku Nakajima <tnakajima@...>

中島@ブレーンです。

26 messages 2002/03/21

[#34552] Re: 1.7 に関して — "井上 浩一" <kyoui32@...>

井上です。

22 messages 2002/03/22
[#34556] Re: 1.7 に関して — "U.Nakamura" <usa@...> 2002/03/22

こんにちは、なかむら(う)です。

[#34590] Ruby FAQ (Re: 1.7 に関して) — TAKAHASHI Masayoshi <maki@...> 2002/03/22

高橋征義です。

[#34570] cgi.rb+ イテレータ — FUJIOKA Takeyuki <fujioka@...>

藤岡です。

15 messages 2002/03/22

[#34676] 安心できる Marshal と、 Ruby バージョンの検査法 — MALTA Koji <malta@...>

丸田と申します。

62 messages 2002/03/30
[#34678] Re: 安心できる Marshal と、 Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/03/31

新井です。

[#34682] Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/03/31

丸田です。 MarshalとRUBY_VERSIONの話題を分離します。

[#34694] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34695] Re: Ruby バージョンの検査法 — shukaku@... 2002/04/01

At Mon, 1 Apr 2002 16:06:23 +0900,

[#34697] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34714] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/01

丸田です。

[#34719] Re: Ruby バージョンの検査法 — HIDAKA Takahiro <cv8t-hdk@...> 2002/04/02

 ひだかです。

[#34738] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/02

丸田です。

[#34743] Re: Ruby バージョンの検査法 — matz@... (Yukihiro Matsumoto) 2002/04/02

まつもと ゆきひろです

[#34748] Re: Ruby バージョンの検査法 — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/04/03

なひです。

[#34760] Re: Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/04/03

新井です。

[#34765] Re: Ruby バージョンの検査法 — "U.Nakamura" <usa@...> 2002/04/04

こんにちは、なかむら(う)です。

[#34776] Re: Ruby バージョンの検査法 — Tanaka Akira <akr@...17n.org> 2002/04/04

In article <20020404095542.7155.USA@osb.att.ne.jp>,

[#34681] 書籍に関する質問です — Nobuhide Kanagawa <nobuhide@...>

こんにちわ。

17 messages 2002/03/31

[ruby-list:34476] Re: 文字コード混在スクリプトの実行

From: Takaishi Hayato <rio-t@...>
Date: 2002-03-17 07:37:11 UTC
List: ruby-list #34476
こんにちは、高石です。

私も同じような問題にぶつかったことがありました。

# DOS用のソフトの出力(SJIS)を処理する自作ライブラリを、別の
# 目的で作ったスクリプト(EUC)と組合せて利用しようとrequireし
# たらパースエラー。

その時はパースエラーになるんじゃどうしようもないと思って、本
体のスクリプトをSJISに変換して使ったのですが、requireする前
に$KCODEを設定することでパースエラーが回避できるなら、あるい
は別の解決策もあったかもしれないと思い、ちょっと実験してみま
した。

ruby 1.6.6 (2001-12-26) [i686-cygwin]

- sub_sjis.rb -

$str_a = '表示'
$reg_a1 = %r(表)
$reg_a2 = %r(表)s
$str_b = 'あ'
$reg_b = %r(あ)

def test_match(str)
  str =~ /表/s
end

def test_sub
  $str_a.sub(/\\/s,':')
end
---

- main_euc.rb -

#!/usr/local/bin/ruby -Ke

require 'nkf'

$KCODE='s'
require './sub_sjis'
$KCODE='e'

a_euc = '表'
a_sjis = NKF.nkf('-s',a)

#puts $str_a =~ $reg_a1 # => 実行時にRegexpError
puts $str_a =~ $reg_a2 # => 0 (OK)
puts $str_b =~ $reg_b # => 0 (OK)

puts test_match(a_euc)  # => nil (OK)
puts test_match(a_sjis) # =>   0 (OK)

puts test_sub              # => '表示' (OK)
puts $str_a.sub(/\\/,':')  # => '・示' (NG)
puts $str_a.sub(/\\/s,':') # => '表示' (OK)

puts $str_a.split(//).join(':')  # => '・\:示' (NG)
puts $str_a.split(//s).join(':') # => '表:示'  (OK)
---

Regexpは、ライブラリ側で文字コードの指定(//s)さえしておけば
そのまま使えそうですが、ライブラリから得られたStringを本体側
で加工して使いたい場合は文字コードを意識して書かないとだめな
ようですね。
# いずれStringが自分の文字コードを保持するようになれば解決?

とりあえず私の目的には現状のままでも使えそうなので、個人的に
は今回の件は大収穫です。

# といっても、問題のスクリプトはすでに書き直して使っているか
# らさしあたり必要はないんだけど:-P
/--------------------------------------------------------/
  高石 勇人 < rio-t@presen.to >
  PGP Key(RSA): http://rio-t.presen.to/pgp/mykey.asc
         (DSS): http://rio-t.presen.to/pgp/mykey-dss.asc
/--------------------------------------------------------/

In This Thread