[#32945] Shift_JIS variants and UTF-16 support — "U.Nakamura" <usa@...>

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

22 messages 2008/01/07
[#32953] Re: Shift_JIS variants and UTF-16 support — Martin Duerst <duerst@...> 2008/01/07

中村さん、こんにちは。

[#32955] Re: Shift_JIS variants and UTF-16 support — Yukihiro Matsumoto <matz@...> 2008/01/07

まつもと ゆきひろです

[#32959] Re: Shift_JIS variants and UTF-16 support — "NARUSE, Yui" <naruse@...> 2008/01/07

成瀬です。

[#32960] Re: Shift_JIS variants and UTF-16 support — Yukihiro Matsumoto <matz@...> 2008/01/07

まつもと ゆきひろです

[#32992] ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...>

成瀬です。

18 messages 2008/01/08
[#32994] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/09

まつもと ゆきひろです

[#32995] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Martin Duerst <duerst@...> 2008/01/09

At 18:13 08/01/09, Yukihiro Matsumoto wrote:

[#33011] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...> 2008/01/11

成瀬です。

[#33012] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/11

まつもと ゆきひろです

[#33014] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...> 2008/01/11

成瀬です。

[#33015] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/11

まつもと ゆきひろです

[#33239] Re: [ruby-cvs:22386] Ruby:r15149 (trunk): * string.c (rb_str_each_char): move forward. — Tanaka Akira <akr@...>

In article <200801210259.m0L2x3CW017171@ci.ruby-lang.org>,

11 messages 2008/01/21
[#33240] Re: [ruby-cvs:22386] Ruby:r15149 (trunk): * string.c (rb_str_each_char): move forward. — Nobuyoshi Nakada <nobu@...> 2008/01/21

なかだです。

[#33303] Time#strftimeのエンコーディング — rubikitch@...

るびきちです。

13 messages 2008/01/23
[#33305] Re: Time#strftimeのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/01/23

まつもと ゆきひろです

[#33368] summary of script encoding — "U.Nakamura" <usa@...>

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

22 messages 2008/01/25
[#33375] Re: summary of script encoding — Yukihiro Matsumoto <matz@...> 2008/01/25

まつもと ゆきひろです

[#33376] Re: summary of script encoding — "U.Nakamura" <usa@...> 2008/01/25

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

[#33387] HashからStructを作る — rubikitch@...

るびきちです。

19 messages 2008/01/25
[#33455] Re: HashからStructを作る — Yukihiro Matsumoto <matz@...> 2008/01/28

まつもと ゆきひろです

[#33505] Re: HashからStructを作る — rubikitch@... 2008/01/29

From: Yukihiro Matsumoto <matz@ruby-lang.org>

[#33507] Re: HashからStructを作る — Yukihiro Matsumoto <matz@...> 2008/01/29

まつもと ゆきひろです

[#33508] Re: HashからStructを作る — rubikitch@... 2008/01/29

From: Yukihiro Matsumoto <matz@ruby-lang.org>

[#33433] Win32OLE: set encoding to OLE string — "U.Nakamura" <usa@...>

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

16 messages 2008/01/28

[#33461] Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...>

=1B$B?9ED$H?=3D$7$^$9!#=1B(B

19 messages 2008/01/28
[#33473] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Nobuyoshi Nakada <nobu@...> 2008/01/28

なかだです。

[#33503] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/29

森田です。

[#33514] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Nobuyoshi Nakada <nobu@...> 2008/01/29

なかだです。

[#33518] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/30

森田です。

[#33545] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Ryutaro Amano <wn9r-amn@...> 2008/01/31

天野竜太郎と申します。

[#33546] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/31

森田です。

[#33547] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Ryutaro Amano <wn9r-amn@...> 2008/01/31

天野です。

[#33551] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/31

森田です。

[#33488] 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

20 messages 2008/01/29
[#33491] Re: 現在の script encoding の値を得る方法は? — Yukihiro Matsumoto <matz@...> 2008/01/29

まつもと ゆきひろです

[#33500] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/29

永井@知能.九工大です.

[#33501] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/29

成瀬です。

[#33515] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/30

永井@知能.九工大です.

[#33516] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/30

成瀬です。

[#33519] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/30

永井@知能.九工大です.

[#33522] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/30

成瀬です。

[ruby-dev:33107] Re: String#valid_encoding? shoud be strict?

From: "NARUSE, Yui" <naruse@...>
Date: 2008-01-14 19:30:00 UTC
List: ruby-dev #33107
成瀬です。

Masayoshi Takahashi wrote:
> 高橋征義です。1.9のエンコーディングとString#valid_encoding?について。
> 
> 【背景】
> 入力チェック等で、ある文字列があるエンコーディングの範囲内に
> おさまっているか、厳格にチェックしたい場合があります。
> (おさまっていない場合は再入力をうながしたり、「?」に強制的に
> 置換したりします)。
> 
> 【提案】
> というわけで、例えば String#valid_encoding? で厳格なチェックが
> できるとうれしいです。具体的には、Shift_JISで、JISにない文字
> (いわゆる機種依存文字)が含まれている場合、falseになると
> いった具合です。

そういったニーズはわかるのですが、そういった validation に必要なデータ量
は Ruby 本体が持つには大きすぎるように感じます。Shift_JIS ですら
0x8140-0x9fEC, 0xE040-0xEAA4 まできっちり詰まっているかと思いきや、非漢
字のあたりはちらほら穴があいているので、そこの情報も必要です。Unicode だ
となおさら。

> 【備考】
> これって、Windows-31JがShift_JISのreplicaそのままでいいのか
> どうか問題にかかわってくるんですよね。上記のような理由も
> あって、私はWindows-31JとShift_JISはまるっきり同じ、ではない
> 方がいいと思っています。
> もっとも、じゃあISO-2022-JPの厳格な解釈は?とか、いろいろ
> 問題が出てくるとは思いますが……。

replica という語感が誤解を生みやすいのかもしれませんが、Ruby 本体が (と
いうよりは鬼車が) 関心を持っているのは文字がどこで切れるか、言いかえれば
どのような符号化表現を用いているかです。その encoding (というか charset
というか 文字集合) において実際に文字が定義されているかどうかはどうでも
いいのです。そして、Shift_JIS も Windows-31J もどちらもシフト符号化表現
を用いている以上まるっきり同じものです。EUC-CN は EUC-KR の replica です
しね。

図にすると [ruby-dev:32952] みたいなかんじ。

そういった性質を持つ以上、現在の valid_encoding? に文字集合への内包性
チェックを求めるのは違うと思います。むしろ、妥当性をチェックしないのに
valid を名乗るのが間違っているのではないかという批判はありえる話で、
well_formed_encoding? とした方がいいのではないかと提案しようと思ったもの
のあまりの名前の長さにやめたのですが、well_formed? なら短いので、名前を
変えませんか。

well-formed XML からの連想で validation を行わず Character Encoding Form
(Scheme) のみを判定するのだろうと推測してくれることが期待できます。

> いずれにしても、最悪上記【背景】に書いたことを解決するのが
> 目的です。それができるのなら、 String#valid_encoding? 以外の
> 手段を使うのであっても構いません。

ところで、他にどのコードポイントが存在し、どれが存在しないかを知っている
のは、文字コード変換機あたりが考えられるかと思います。多くのエンコーディ
ングでは、それが Unicode に変換可能かで妥当性をチェックできる…かのように
思えますが、それで本当にいいのですかね。まず、encoding を注意深く選ばな
いと、期待した集合は得られません。EUC-JP だとたぶん JIS X 0212 が余計で
すし (Perl/Encode だと JIS X 0213 まで入ってる)、Shift_JIS でも nkf や
現在の Ruby/transcode だと CP932 拡張も変換します。そもそも、いわゆる半
角カナや全角英数字も期待している集合に入っていないんじゃないですか。

結局のところ、そういった validation は専門のモジュールに任せるべきで、汎
用の何かに求めるべきではないと思います。で、何を使えばいいかですが・・・
Ruby/CHISE かな・・・?

それもアレなんで、必要ならば nkf につっこみますかねぇ。(どうせ内部は区
点コードだし)

-- 
NARUSE, Yui  <naruse@airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA

In This Thread