[#43857] Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...>

こんにちは、笠松と申します。

88 messages 2007/08/18
[#43858] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/18

Hiroshi Kasamatsu wrote:

[#43862] Re: Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...> 2007/08/19

皆さん、早速のレスありがとうございます。

[#43863] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/19

Hiroshi Kasamatsu wrote:

[#43870] Re: Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...> 2007/08/20

Urabeさん、笠松です。レスありがとうございます。

[#43872] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

Hiroshi Kasamatsu wrote:

[#43873] Re: Hashへの生成順は保障されないのか? — cuzic <cuzic@...> 2007/08/20

cuzic です。

[#43874] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

cuzic wrote:

[#43875] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/20

In article <46C9E7BB.4060100@ruby-lang.org>,

[#43876] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

おお、田中さんを満足させる説明ってのは結構ハードル高そうだな。

[#43878] Re: Hashへの生成順は保障されないのか? — しん <dezawa@...> 2007/08/20

# 出遅れたので、レスすべきメールが判らなくなってしまったので、手近なのに

[#43879] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/20

まつもと ゆきひろです

[#43887] Re: Hashへの生成順は保障されないのか? — Nobuyoshi Nakada <nobu@...> 2007/08/21

なかだです。

[#43891] Re: Hashへの生成順は保障されないのか? — SASADA Koichi <ko1@...> 2007/08/21

 ささだです。

[#43892] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/21

まつもと ゆきひろです

[#43893] Re: Hashへの生成順は保障されないのか? — Nobuyoshi Nakada <nobu@...> 2007/08/21

なかだです。

[#43899] Re: Hashへの生成順は保障されないのか? — "Akinori MUSHA" <knu@...> 2007/08/21

At Tue, 21 Aug 2007 13:59:43 +0900,

[#43900] Re: Hashへの生成順は保障されないのか? — SASADA Koichi <ko1@...> 2007/08/21

 ささだです。

[#43906] Re: Hashへの生成順は保障されないのか? — "Akinori MUSHA" <knu@...> 2007/08/21

At Tue, 21 Aug 2007 19:29:11 +0900,

[#43921] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/22

In article <86sl6dgikh.knu@iDaemons.org>,

[#43926] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/23

In article <87zm0kaz60.fsf@fsij.org>,

[#43927] Re: Hashへの生成順は保障されないのか? — Yugui <yugui@...> 2007/08/24

Yuguiといいます。

[#43930] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/24

まつもと ゆきひろです

[ruby-list:43797] Re: mod_ruby 環境の Rails での日本語文字列の truncate

From: Masahiro Utsumi <utsumi@...>
Date: 2007-08-02 08:28:14 UTC
List: ruby-list #43797
内海@ベルギーです

$KCODEをちゃんと設定されていますでしょうか?

私はtruncateではなく、送信メールの本文を整形する処理を
作ろうとして悩んでいます。文字数ではなく半角文字数換算で
折り返したいのです。
nkfの -f フラグを使えばできるのですが、nkfでは 
UTF8が
扱えないですし、文字列を "string".sizeってやると
全角文字は3バイトと数えられるみたいで、半角換算(=表示幅)
とならないので悩んでいます。

UTF8でメール本文整形(折り返し)ができて、できれば、
「。」など文章の先頭に折り返されないような禁則処理もサポート
したライブラリありませんでしょうか?

便乗質問失礼しました。

On 2007/08/02, at 9:56, IKEDA Katsumi wrote:

> 池田と申します。
>
> 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>
>


In This Thread