[#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:33515] Re: 現在の script encoding の値を得る方法は?

From: Hidetoshi NAGAI <nagai@...>
Date: 2008-01-30 01:19:46 UTC
List: ruby-dev #33515
永井@知能.九工大です.

From: "NARUSE, Yui" <naruse@airemix.com>
Subject: [ruby-dev:33501] Re: 現在の script encoding の値を得る方法は?
Date: Tue, 29 Jan 2008 19:51:30 +0900
Message-ID: <479F053A.7030705@airemix.com>
> 「require したスクリプトの encoding」という概念が実際は何を指している
> か、というのはおそらく Ruby 1.9 における一つの論点かと思います。よく言わ
> れる「内部エンコーディング」のことだと思うのですが、Perl や Java なら
> UTF-8 や UTF-16 で決まりますけれど、Ruby 1.9 は CSI なため、決まらないど
> ころか、そのような一定の内部エンコーディングが存在しない可能性もあります。

まつもとさんに教えていただいた __ENCODING__ を試してみましたが,
require されたファイルで定義されたメソッドから見た __ENCODING__ は
require 完了後に他所から呼ばれてもきちんと保たれていますね.
おっしゃる通り,「一定の内部エンコーディングは存在しない」と
解釈する方が良いようです.

> 唯一高い確度で推定できるのが -K が指定されている場合で、これは -K のエン
> コーディングだと思われますが。

なるほど.
しかし,-K が指定されたかどうかはスクリプト側からはわからないので,
これによって判断することはできないのが残念です.
それとも私が忘れているだけで,得る方法が存在したでしょうか?

> > わざわざ指定してもらわねばならないことを
> > 増やしたくはないのですが,
> > 
> > 「 Tk からの戻り値の encoding は Tk.encoding_system = で
> >    明示してください.
> >    明示がなければシステムに依存したデフォルトの
> >    Tk.encoding_system の encoding で返されます 」
> > 
> > とするのが妥当なところかもしれません.
> > どなたか良いアイディアをお持ちの方はいらっしゃいませんか?
> 
> Tk.encoding_system はシステム依存でなく、Encoding.default_external に一
> 致させておいた方がトラブルが少ないのではないかなぁと思います。

説明が足りませんでした.
システムに依存したデフォルトの Tk.encoding_system は
通常は locale に依存して決まります.
Encoding.default_external も通常は locale 依存で決まると
考えても良かったですよね?
ですので,明示が無い場合は Encoding.default_external と
矛盾しない encoding が設定されるものと考えていました.

ですが,-K オプションのことも考えると,おっしゃる通り
「明示がなければ tk を require した時点の
  Encoding.default_external で返すように設定されます」
とする方法もありなのかもしれません.

でも,-E オプションが指定された場合を考えると,
Encoding.default_external に合わせてしまうと
スクリプト上で Tk からの戻値を利用 (文字列比較とか) する際に
encoding を常に気にしなければならず,不便そうに感じます.

どうするのがスクリプトを書く人の負担を最小限にするか,
もう少し考える必要がありそうですね.

# 多分,Tk.encoding_system と Encoding.default_external は揃えるが,
# Tk → Ruby の受け渡しの encoding は独立に設定可能というようには
# すると思います.
# Tk → Ruby のデフォルトまで Encoding.default_external に
# 揃えてしまうのが適切な判断かどうかという話です.

> > また,もし上記のような対応とせざるをえないなら,
> > Ruby の encoding -> Tcl/Tk の encoding の対応表が必要です.
> > これを安全確実に作成し維持できるようにするために,
> > うまい方法はないでしょうか?
> 
> tk_encoding.each do |name|
>   enc = Encoding.find(name)
>   puts '%s -> %s' % [enc.to_s, name]
> end
> これで作れます。

あ,ごめんなさい.
tk の encoding 名に基づいて,Encoding.find を使って
直接対応する encoding を得ることはわかります.
aliase についても Encoding.aliases の結果に基づいて
対応を検索するようにすればなんとかなりそうです.

# Encoding.aliases は対応関係のある全 encoding 名を網羅していると
# 考えていいのですよね?

気にしていたのは直接対応する encoding ではなく,
その replica が指定されたケース,あるいは
直接対応する encoding と共通の replica 元を持つものが
指定されたケースです.
そうした場合には,replica 関係から直接対応する encoding を
検索して指定しなければならないように思うのですが,
この関係はスクリプト上からは調べようがないのですよね?
それとも,replica に対する私の捉え方が不適切で,
もし関係がわかったとしてもそれを選択してはならないのでしょうか?

対応できるものが全く存在しない場合は
UTF-8 にするか例外を上げるかだとは思いますが...
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp


In This Thread