[#43767] UDP通信時のエラー検出 — "中田雅美" <mimiger2007@...>
中田(雅)と申します。
小西 弘将です。
In message <6DC7D411CB0FB4konishi@raax.co.jp>
中田(雅)です。
In message <407af920708010215n6cb6a4a7o32a164da7d0b6901@mail.gmail.com> 2007-08-01T18:15+0900,
[#43777] gsub! で定数を書き換えられてしまう — 古川大輔 <mogya99@...>
はじめまして。もぎゃ と申します。
[#43781] WEB公開されるML投稿記事について — REI OKAMOTO <okamoto@...>
昨日投稿した岡本です。
[#43796] mod_ruby 環境の Rails での日本語文字列の truncate — "IKEDA Katsumi" <ikedak@...8.so-net.ne.jp>
池田と申します。
[#43806] Procの仕様について — "SHIMADA Koji" <snoozer.05@...>
しまだです。
[#43809] 配列についての質問 — "142QN4969@..." <ohrsts@...>
小原です。御世話になっています。
[#43815] 日本Rubyの会のHPでHikiError — "SHIMADA Koji" <snoozer.05@...>
しまだです。
[#43846] 質問:シェルスクリプトにすると uninitialized constant DATA — sw@...
環境は Windows XP
なかだです。
コメント、ありがとうございます。
[#43857] Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...>
こんにちは、笠松と申します。
Hiroshi Kasamatsu wrote:
皆さん、早速のレスありがとうございます。
Hiroshi Kasamatsu wrote:
Urabeさん、笠松です。レスありがとうございます。
Hiroshi Kasamatsu wrote:
cuzic です。
cuzic wrote:
In article <46C9E7BB.4060100@ruby-lang.org>,
おお、田中さんを満足させる説明ってのは結構ハードル高そうだな。
# 出遅れたので、レスすべきメールが判らなくなってしまったので、手近なのに
まつもと ゆきひろです
なかだです。
ささだです。
まつもと ゆきひろです
なかだです。
At Tue, 21 Aug 2007 13:59:43 +0900,
ささだです。
At Tue, 21 Aug 2007 19:29:11 +0900,
In article <86sl6dgikh.knu@iDaemons.org>,
In article <87zm0kaz60.fsf@fsij.org>,
Yuguiといいます。
まつもと ゆきひろです
ささだです。
[#43868] ruby1.8でssl通信@stmp/pop3 — "Tomo Matsumoto" <tomoyuki28jp@...>
松本と申します。
[#43923] [ANN] isi-1.1.3 released! — NISHIMATSU Takeshi <t_nissie@...>
西松と申します。
[#43939] Windows で正確なファイル名を取得するには — Five point Five <5.5@...>
Five point Five です。
[ruby-list:43796] mod_ruby 環境の Rails での日本語文字列の truncate
池田と申します。
Ruby on Rails での日本語文字列を指定した長さだけ
切り取る処理 (truncate) を実装しようとしています。
環境は Debian etch で以下を使用しています。
- ruby 1.8.5 (Debian 標準)
- apache 2.2.3 (Debian 標準)
- mod_ruby (Debian 標準 libapache2-mod-ruby)
- MySQL 5.0.x (独自ビルド)
- RubyGems (独自インストール)
最終目的は文字列を半角nバイト分取り出すことです。
ここではいわゆる半角英数と全角があり、半角が全角の
2倍の文字幅を持っているというイメージで考えています。
当初は独自実装で以下の形で一文字ずつ数えていき、
Webrick 環境でテストした範囲では期待した動作を
していました。
ここで text は、MySQL から取り出した Rails の
モデルが保持している文字列です。
def my_truncate(text, length)
text.split(//).eatch do |c|
if c.length > 1
# 全角 2 バイトのつもりで計算
else
# 半角 1 バイトのつもりで計算
end
end
end
そして最近 mod_ruby 化を行ったところ、文字の切り出しが
期待どおりに行われず、サーバの再起動の直後以外は指定した
長さの半分の長さで切られているという現象が発生するように
なりました。切り取りが全角文字を分断した場合は、その部分が
文字化けする状態となっています。
全角2バイトとして処理されているように私は感じています。
text.split(//) で単なるバイト列としてすべて1バイトずつ
処理されているのが原因ではないかと思っているのですが、
対応方法など検討が付かずに困っております。
現在は rails の helper に標準で用意されている truncate を使い、
とりあえず文字数で切り取る方法を試しているのですが、
こちらも同様に指定文字数よりも短く切り取られ、上記と同様に
末尾にごみが付いている状態が発生しています。
本当に mod_ruby 化だけで問題が発生したのかあやふやな部分も
あるのですが、解決法や抑えておくべき情報などアドバイス
いただけますでしょうか。
よろしくお願いします。
--
IKEDA Katsumi <ikeda.katsumi@gmail.com>