Project

General

Profile

Actions

Bug #832

closed

Encoding in which Array#pack returns when a string-related format and a byte seq format are mixed

Added by yugui (Yuki Sonoda) over 15 years ago. Updated almost 13 years ago.

Status:
Closed
ruby -v:
Backport:
[ruby-dev:37294]

Description

=begin
Yuguiです。

現在、次のようになります。
["\u3042", 1].pack("A*s!").encoding #=> #Encoding:UTF-8

しかしながら、s!が生成するのは本質的にバイナリであって、この場合
rb_enc_compatible(UTF-8, ASCII-8BIT) で全体はASCII-8BITになるべきではな
いでしょうか。

今のところは

  • s!が生成するのはエンコーディングを持たない
    => 結合相手がいればそれに従う
    => いなければASCII-8BIT
    という判断のように見えます。

しかしながら、AaMmUuxなどを除けばpackが生成するのは文字列というよりはバ
イト列です。特にプラットフォーム依存なpack formatについてはその色彩が濃
厚です。これらは積極的にASCII-8BITに傾けるべきではないでしょうか。

--
Yugui
http://yugui.jp
私は私をDumpする
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0