🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
ASCII

ASCIIは、米国規格協会(ANSI)が制定したコンピューターの情報交換のための文字コードの一つ。アルファベットや数字などを1文字当たり7ビットで表します。英数字を表示する文字コードの中で最も高い互換性を持ち、多くの通信機器に利用されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

3回答

1688閲覧

ASCIIにおけるユニット分離文字とは?

Monlar

総合スコア1

ASCII

ASCIIは、米国規格協会(ANSI)が制定したコンピューターの情報交換のための文字コードの一つ。アルファベットや数字などを1文字当たり7ビットで表します。英数字を表示する文字コードの中で最も高い互換性を持ち、多くの通信機器に利用されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2023/10/04 00:43

プログラムの直接的な質問ではありませんが、ご容赦ください。

ASCIIにおけるユニット分離文字とは何なのでしょうか?他人に説明する時、何と説明すればよいのでしょうか。

フィールドを区切る制御文字であるとは何となく分かりましたが、具体的に何なのか、フィールドが何を示すのか、、、等々しっくり来ません。

何かご説明をできる有識者の方いらっしゃればご教示よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2023/10/04 00:56 編集

> 他人に説明する時、何と説明すればよいのでしょうか。 どのようなシチュエーションで、それを説明する必要が生じたのでしょうか? (現代で、改行・タブ・ヌル文字など一部を除いたASCIIの制御文字が、制御文字としての意味を持つことはほとんどありません)
YellowGreen

2023/10/04 01:54

あくまでも喩えです。 データ転送をするときに、 Excel(Googleスプレッドシート)などのスプレッドシートで喩えると、 ファイル分離文字:ワークブック(スプレッドシート)の区切り グループ分離文字:ワークシート(シート)・タブの区切り レコード分離文字:行の区切り ユニット分離文字:セル(行の中の各列)の区切り を連続したコードだけで伝える場合の それぞれの区切りというイメージでしょうか。
yambejp

2023/10/04 03:11

質問内容は「US(0x1F)って何に使うのでしょうか?」ということですよね?
ikedas

2023/10/04 22:23

ユニット分離制御文字 (US) の用法を知りたいということかと思いますが、どのような状況下での用法を知りたいのでしょうか。 制御文字はASCIIではそれほど明確な定義がないものも多く、実際には別の規格や独自の仕様に則った使いかたをしていることも多いのです。 他の方もおっしゃっていますが、それが使用される具体的な状況を説明いただけないでしょうか。
guest

回答3

0

csv

1コード,文字 20,NULL 31,SOH 42,STX

というデータを表すテキストがあったとします。
個々のデータ(フィールド)の区切りは,
列(レコード)の区切りは改行文字です。

この表し方だとフィールド内で,や改行を入れたいときに区切り文字としてのそれらと区別できなくて困ります。
というわけで代わりに用意されたのがユニット分離文字、レコード分離文字です。

投稿2023/10/04 01:57

ozwk

総合スコア13551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下によると、コード31(1F) Unit Separatorは、パンチカード由来の(汎用機の)テープで使用されていた区切り文字のようです。

Unit Separator - ASCII Code
https://www.ascii-code.com/character/%E2%90%9F

The separators (File, Group, Record, and Unit: FS, GS, RS and US) were made to structure data, usually on a tape, in order to simulate punched cards. End of medium (EM) warns that the tape (or other recording medium) is ending. While many systems use CR/LF and TAB for structuring data, it is possible to encounter the separator control characters in data that needs to be structured. The separator control characters are not overloaded; there is no general use of them except to separate data into structured groupings. Their numeric values are contiguous with the space character, which can be considered a member of the group, as a word separator.

Google翻訳

セパレーター (ファイル、グループ、レコード、ユニット: FS、GS、RS、US) は、パンチカードをシミュレートするために、通常はテープ上のデータを構造化するために作成されました。メディアの終わり (EM) は、テープ (または他の記録メディア) が終わりつつあることを警告します。多くのシステムはデータの構造化に CR/LF および TAB を使用しますが、構造化する必要があるデータに区切り制御文字が含まれる可能性があります。区切り文字制御文字はオーバーロードされません。データを構造化されたグループに分割すること以外には、これらの一般的な使用法はありません。それらの数値は、単語の区切り文字としてグループのメンバーと見なされるスペース文字と連続しています。

ASCIIコードの制御文字内に同様の区切り文字は4種類あり、それぞれファイル、グループ、レコード、ユニットを区切っていたようです。これらの説明は、以下に記載があります。

https://www.nist.gov/system/files/documents/2021/03/23/ansi-nist_2010_traditional_encoding.pdf

特にUnit Separatorの説明を引用すると…

The “US” character shall separate individual information items within a field or subfield. This is a signal that the next information item is a piece of data for that field or subfield.

Google翻訳

「US」文字は、フィールドまたはサブフィールド内の個々の情報項目を区切るものとします。これは、次の情報項目がそのフィールドまたはサブフィールドのデータであることを示す信号です。

これによると、パンチカードやテープ時代のUnit Separatorは、現代のField Separator相当の制御文字であるということのようです。同じ制御文字で言えば、Unit SeparatorはTSVファイルのTabに相当する文字のようだということです。

なお、個人的には現在Unit Separatorなど4種類のSeparatorを使用されている例を知りません。大昔の汎用機から抽出されたデータが物理的にはテープを経由し、エンコーディングとしてはEBCDICなどを経由してASCIIデータとして生き残ってる可能性はあるかもしれませんが…

というわけで、他人に説明するのであれば、大昔に使用されていた区切り文字で、現代の制御コード1Fにマッピングされている文字と言えばいいのではないかと愚考します。

投稿2023/10/04 17:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

想像ですが、多分以下のいずれかかと。

  1. US (Unit Separator) を解釈できる端末 (VT100 など) が実際に存在したため ASCII に取り入れられた。現在の端末エミュレータでは US に対応していないため意味のない値となった。
  2. US を解釈できる端末は存在しなかったが、値の区切りとして利用するアプリが出現するかもしれないと考え ASCII に取り入れられた。現在は US を利用するアプリはなく (少なくとも世間一般で広くは使われておらず)、CSV のカンマや TSV のタブが使われている

調べた限りでは 1 のような端末の存在や curses などのライブラリで US がこういう挙動となる、といった情報は見つからなかったので、2 なのではと考えます。

投稿2023/10/04 10:00

68user

総合スコア2022

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2023/10/04 10:51

端末はコードの意味には関係無いです。ASCIIコードはInformation Interchangeつまり通信用のものなので、 最大4階層までの構造を持ったデータを送れるように4レベルのセパレーターを用意したと言うことです。 ADM3AやVT100など画面制御機能を持った端末(というかCRTに文字を表示する端末)が出来たのは、ASCIIよりずっと後です。 なので2ではないものの、2の方が近いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問