[#44295] p "135790123456789".delete("357") #=> "190124689" — take_tk <ggb03124@...>
以下は独り言なのですが、よろしかったら、String#delete の仕様が現在のよう
4 messages
2007/12/02
[#44310] プログラムに対して意図したとおりの文字列を渡す方法 — "Information Kanasansoft" <kanasansoft@...>
kanasanです。
9 messages
2007/12/05
[#44313] Re: プログラムに対して意図したとおりの文字列を渡す方法
— Kazuhiro NISHIYAMA <zn@...>
2007/12/05
西山和広です。
[#44322] mork.rb — "S_Konno(今野 滋)" <sk@...>
今野です。
6 messages
2007/12/06
[#44332] クラス:相互参照系の作成方法について質問です — "Saburoh Sakai" <sabroh@...>
はじめまして、さかいと申します。
12 messages
2007/12/11
[#44352] 配列のシャッフル — Maehara Masahide (前原正英) <maehrm@...>
前原と申します。
13 messages
2007/12/18
[#44353] Re: 配列のシャッフル
— "Takehiro Nagai" <lukesilvia@...>
2007/12/18
永井と申します。
[#44366] Rake改善プロジェクト — "Hajime Hoshi" <hajimehoshi@...>
東京大学修士 1 年の星一と申します。
14 messages
2007/12/19
[#44367] Re: Rake 改善プロジェクト
— NISHIMATSU Takeshi <t_nissie@...>
2007/12/19
西松と申します。
[#44386] 「Rubyリファレンスマニュアル刷新計画」1.9.0リリース — "原 悠" <yhara@...>
「Ruby リファレンスマニュアル刷新計画」メンバーのyharaです。
4 messages
2007/12/25
[#44398] DateTimeクラスでの時間加算について — "西塔伸一郎" <sinsaihy@...>
お世話になっております。
5 messages
2007/12/27
[#44402] ruby-refm-1.9.0-dynamic : Ruby 1.9 でうごかない — <mugenkai_151e@...>
ruby-refm-1.9.0-dynamic
4 messages
2007/12/27
[ruby-list:44420] 1.9.0のERBでマルチバイトが扱えません
From:
"MATSUOKA Kohei" <kmachu@...>
Date:
2007-12-28 14:23:49 UTC
List:
ruby-list #44420
こんばんは。まちゅといいます。
Ruby1.9.0のリリース、おめでとうございます。
さて、1.9.0上でtDiaryを動かそうとしていて気がついたのですが、
ERBに渡したテンプレートのencodingが欠落してしまうようです。
そのため、ERBでマルチバイトを含む文字が扱えません。
状況を整理しましたので、こちらで報告します。
* 環境
ruby 1.9.0 (2007-12-25 revision 14709) [i386-freebsd6.1]
* 再現方法
以下のサンプルで試しました。
----
require 'erb'
data = "データ"
rhtml = "テンプレート + <%= data %>"
erb = ERB.new(rhtml)
puts "data: #{data.encoding}"
puts "rhtml: #{rhtml.encoding}"
puts "erb.src: #{erb.src.encoding}"
puts erb.result(binding)
----
サンプルを実行すると、rhtmlのencodingがEUC-JPから
ASCII-8BITへと変わってしまい、文字列の連結に失敗します。
----
$ ruby --encoding=EUC-JP test.rb
data: EUC-JP
rhtml: EUC-JP
erb.src: ASCII-8BIT ← ここがEUC-JPからASCII-8BITに変わっている
(erb):1:in `concat': character encodings differ (ArgumentError)
----
* 対処方法
正しいかどうかの自信はないのですが、
ERB#initialize でテンプレートと同じencodingを指定することで
先ほどのサンプルは期待通り動作するようになりました。
----
--- erb.rb.org Fri Dec 28 23:05:02 2007
+++ erb.rb Fri Dec 28 23:05:18 2007
@@ -689,6 +689,7 @@
compiler = ERB::Compiler.new(trim_mode)
set_eoutvar(compiler, eoutvar)
@src = compiler.compile(str)
+ @src.force_encoding(str.encoding)
@filename = nil
end
----
--
MATSUOKA Kohei < http://www.machu.jp/diary/ >