[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>
度々オブジェクト指向についての質問ですいません。
17 messages
2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について
— Yukihiro Matsumoto <matz@...>
2008/01/04
まつもと ゆきひろです
[#44453] RSS取得時<enclosure>タグでエラー? — "garyo hosu" <garyohosu@...>
garyoです。いつもお世話になっております。
5 messages
2008/01/08
[#44463] [ANN] Rails勉強会@東京 第26回のお知らせ — "MOROHASHI Kyosuke" <moronatural@...>
各位
1 message
2008/01/11
[#44464] [ANN] rcairo 1.5.1 — Kouhei Sutou <kou@...>
須藤です。
5 messages
2008/01/11
[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>
はじめまして、青木ルイスと申します、
14 messages
2008/01/12
[#44479] ファイル出力時のprintについて
— m-hatake@...
2008/01/16
畠山と申します。
[#44481] Re: ファイル出力時のprintについて
— KIMURA Koichi <kimura.koichi@...>
2008/01/16
木村です。
[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>
山崎(ゆ)です。
14 messages
2008/01/16
[#44517] www.ruby-lang.org/ja/man/ を静的HTMLに変更 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
6 messages
2008/01/20
[#44536] カタカナ→ひらがな変換 — "Hideo Konami" <konami@...>
小波です。
8 messages
2008/01/25
[ruby-list:44438] Re: Text Encoding in Ruby 1.9.0
From:
Yukihiro Matsumoto <matz@...>
Date:
2008-01-05 03:17:56 UTC
List:
ruby-list #44438
まつもと ゆきひろです
In message "Re: [ruby-list:44436] Text Encoding in Ruby 1.9.0"
on Sat, 5 Jan 2008 11:33:04 +0900, "Hideo Konami" <konami@kyoto-wu.ac.jp> writes:
|1. ruby のオプションの -Ku があるかないかで,ソースの中の
| 文字列リテラルのエンコーディングが UTF-8 になるか
| ASCII-8BIT になるのかが決定されるという理解で正しいの
| でしょうか。
-Kは1.8互換のオプションで推奨されません。-Kuを指定すると、
* スクリプトのデフォルトのエンコーディング
* 入力のデフォルトのエンコーディング
がUTF-8になります。また-Kや-Eなどエンコーディングを指定するオ
プションがまったく指定されないと、スクリプトのエンコーディン
グのデフォルトは「ASCII-8BIT」になります。また、入力のデフォ
ルトのエンコーディングはlocaleから決定されます。小波先生の場
合には「UTF-8」のようですね。
|2. force_encoding は破壊的にエンコーディングを変更する仕様
| になっているようですが,それはむしろ force_encoding! の
| ほうがよかったのはないでしょうか。 "force" に "!" がすで
| に入っている?非破壊的なメソッドもあるべきだと思うのです
| が。
force_encodingは文字列の内容とは無関係にエンコーディング情報
を書き換える(内容の変換などは一切しない)という意味で「普通の
人」が使うメソッドではないと考えています。ので、使いやすさな
どを考慮して2バージョンを用意するなどの配慮は行っていません。
|3. EUC-JP のテキストを読み込んだはずなのに,そのテキストが
| encoding が UTF-8 を返すのはへんだと思うのですが,どうい
| う考えでそうなるのでしょうか。SJIS, JIS のテキストでもやは
| り同様の動作になっています。
先生のプログラムでは読み込むファイルのエンコーディングが
「EUC-JP」であるとはどこにも指定していませんから、Rubyにはそ
れが「EUC-JP」であると知る手段がありません。ですから、locale
にしたがい、入力データは基本的に「UTF-8」なのだと信じるしかな
いわけです(間違いの可能性が否定できず、間違えると悲惨なことに
なる自動判別は組み込みではサポートしていません)。
明示的に指定する場合には、openの部分を
open("text_euc.txt")
から
# 「EUC-JP」エンコーディングを付与する場合
open("text_euc.txt", "r:euc-jp")
または
# 「EUC-JP」ファイルを「UTF-8」に変換して読み込む場合
open("text_euc.txt", "r:euc-jp:utf-8")
としてください。
|4. transcode.c には str.encode(encoding), str.encode!(encoding)
| というのがあり,これらは force_encoding(encoding) とだいたい同義
| だと思ったのですが,違うようです。もう少し調べてみようとは思い
| ますが,どう使うべきものか教えていただけると幸いです。
encodeメソッドは文字列の内容を変換します。内容に関らず単にエ
ンコーディングの情報を書き換えるforce_encodingとは目的からし
て違います。
まつもと ゆきひろ /:|)