*ほわっといず charset? char は[[文字]] character の略として業界(どこ)では頻用される語句です。 set はその通りセットですが、数学の set と同じ(ような)意味で、 正統的(謎)には[[集合]]と訳します。 ですから、そのまま解釈すると文字集合ということになります。 しかし、この辺の用語の混乱は激しくて、大抵は単なる文字の集合 のことだけではなくて、その文字の集合に数字を割り振ったものとか、 その数字と計算機上の表現の対応の定義とか、そういう (文字を計算機で扱うのに必要な) 余計な色々までひっくるめて、 charset と呼びます。 *MIME charset [[MIME]] が定義する charset が、一番有名でしょう。 RFC 2045 〜 2049 には charset という語の定義は出てきませんが、 "charset" parameter は文字集合 character set を示すパラメーター らしいので、 character set = charset と考えて良いと思われます、 **文字集合 Character Set (RFC 2045 2.2) The term "character set" is used in MIME to refer to a method of converting a sequence of octets into a sequence of characters. Note that unconditional and unambiguous conversion in the other direction is not required, in that not all characters may be representable by a given character set and a character set may provide more than one sequence of octets to represent a particular sequence of characters. 用語「character set」 「文字集合」 は MIME ではオクテット列を 文字列に変換する方法を表します。なお、逆方向への無条件かつ曖昧でない 変換は必須ではありません。全ての文字が当該文字集合で表現可能でない かもしれませんし、その文字集合で特定の文字列を表現するのに 複数のオクテット列が使えても構いません。 This definition is intended to allow various kinds of character encodings, from simple single-table mappings such as US-ASCII to complex table switching methods such as those that use ISO 2022's techniques, to be used as character sets. However, the definition associated with a MIME character set name must fully specify the mapping to be performed. In particular, use of external profiling information to determine the exact mapping is not permitted. この定義は、 US-ASCII のように簡単な単一表対応付けから ISO 2022 技術を使うものまで、様々な種類の文字符号化を文字集合として 使うことを認めるものです。しかし、 MIME 文字集合名に関連付けられる定義は 使われる対応付けを完全に規定するものでなければなりません。 特に、正確な対応付けに外部プロファイル情報を使うのは認められません。 NOTE: The term "character set" was originally to describe such straightforward schemes as US-ASCII and ISO-8859-1 which have a simple one-to-one mapping from single octets to single characters. Multi-octet coded character sets and switching techniques make the situation more complex. For example, some communities use the term "character encoding" for what MIME calls a "character set", while using the phrase "coded character set" to denote an abstract mapping from integers (not octets) to characters. 参考: 用語「character set」「文字集合」は元々は US-ASCII や ISO-8859-1 のように単一オクテットと単一文字の一対一の単純な対応付けを持つ 分かりやすい方式を指していました。多オクテット符号化文字集合や 切り替え技術のおかげで状況が複雑になりました。例えば、 用語「文字符号化 character encoding」を MIME で言うところの 「文字集合 character set」に使い、語句「符号化文字集合 coded character set」 で整数 (オクテットで無しに) から文字への抽象的な対応付けを示す 世間もあります。 (訳注: [[CES]]/[[CCS]] 論のことらしい。 Ned じーさんは、 CCS/CES 論は charset の1種ではあるが charset はそれに限定されない とおっしゃってます。) *文字集合 charset は省略形のように見えます。元々はそうなのでしょうが、 今となっては charset は charset であって charset でしかない、 と考えるのが適当かもしれません。訳にあたっても、 訳して原文のニュアンスが失われるとアレなので (ニュアンスなんて そもそも残らないかもしれませんけど。) そのまま charset とするのが良いのではないでしょうか。 正規形のように見える character set は、[[文字集合]]と訳すのが 定着してます。こちらの語は、 (やはり charset と同様の混乱はあるものの) より本来の意味 (文字の集合) で使われていると思われます。 - [1] なんにせよ、[[文字コード]]のところに挙げられている charset の類義語は、その''文脈ごとに意味が異なる''くらいに思っていないと要らぬ勘違いをしてしまいます。 - [2] [[MIME]] charset の最小化規則と、 [[HTTP]] [[CGI]] のような動的生成って本質的に相容れないもののような気がしませんかね。あるいは streaming 的なものとも。 [[chunked符号化]]の尾っぽ header を使えば何とかならなくもない気もするけど, クライアント側で届いたところからレンダリングが不能になって結局意味がない (サーバー側でデータ生成完了後に charset を判定して一気に送りつけるのと変わらない) し、よって steraming には使いようがないし。 - [3] >>2 の解法は最小化規則をあきらめちゃうしかないのかな。 CGI 動的生成はまだ最大の範囲を知ってそうなものだけど、 streaming だと知らないこともあり得る (多言語会談とか?) から、考えうる最大の charset ([[UTF-8]] とか?) を予め仮定しておくしかなさそう。 - [4] >>3 の考え方はつまり charset 指定の最大化であって、 MIME の考えとは全く逆になってしまう。 - [5] >>4 そもそも MIME の最小化規則は相互通信性最大化を目的としている。 [[SMTP]]/[[822]] では基本的にやり直しが効かないから、一度で相手に伝える必要がある (概念上は)。一方 HTTP とかだと[[内容折衝]]もあるし、 (歴史的経緯のせいで) ブラウザの利用者の操作で文字コード選択が出来るから (メイラにもあるけど、 MIME の思想的には考慮外だと思う。) 一度で伝える必要性ってのはあんまりないのかもしれない。こういう考え方の違いがにじみ出てる気がする。