gooドクター有料プランが1ヶ月間無料!

UTF-8は符号単位が8ビットであるため区別する意味はない。

質問者からの補足コメント

  • うーん・・・

    ごめんなさい。ちょっと待ってください。難しいから時間が必要です。

      補足日時:2021/10/19 21:31
gooドクター

A 回答 (4件)

おそらく


符号化形式 : Unicode 文字を 8/16/32bit の値に符号化する
符号化方式 : 情報交換のために、符号をバイト配列に変換する
のことかと思いますが、

8bit 符号化したならば、既にバイト配列になっています。
16/32bit 符号化したならば、対象システムのエンディアンを考慮して BOM の付与やバイトオーダーの変換が必要です。

UTF-8 は 8bit 単位の符号化なので、形式と方式は同じ結果になると説明している様ですが、厳密にいうと BOM 付きの UTF-8 のような例外も存在するので、区別する意味はあると思います。

参考)
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3 …
https://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4 …
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます。

お礼日時:2021/10/20 09:03

> Unicodeでは文字符号化方式としてUTF-8、UTF-16、UTF-16BE、UTF-16LE、UTF-32、UTF-32BE、UTF-32LEの7種類が定められている。

文字符号化形式との違いは、文字符号化形式がプログラム内部で文字を扱う場合に符号なし整数として文字を表現する方法なのに対し、文字符号化方式は入出力時にバイト列として表現する方法である。UTF-8は符号単位が8ビットであるため区別する意味はない。ここです

文字符号化形式と、文字符号化方式の違いについての説明のようですが、
「文字符号化形式がプログラム内部で文字を扱う場合に符号なし整数として文字を表現する方法なのに対し、文字符号化方式は入出力時にバイト列として表現する方法である。」がこの文章の肝ですが、この文章の意味が理解できていないために質問しているわけですよね?
2つの違いの把握は、もっと理解が進んでからでいいと思います。もしくは意味がわかるまで何度も音読するとか。

簡単に言うと、文字符号化形式のUTF-32には、文字符号化方式としてはエンディアンが異なるUTF-32BEとUTF-32LE、さらにBOMを使ってエンディアン情報をファイルに埋め込んだUTF-32があると言うことになります。

「UTF-8は符号単位が8ビットであるため区別する意味はない。」は、
おそらく、「UTF-32と言っても文字符号化形式のことなのか文字符号化方式の事なのか不明だが、UTF-8というとエンディアンがないのでどっちであるか区別する意味は無い」ということなのでしょうが、わざわざ言うことかという気がしますね。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます。

お礼日時:2021/10/20 09:04

>Unicodeでは文字符号化方式としてUTF-8、UTF-16、UTF-16BE、UTF-


>16LE、UTF-32、UTF-32BE、UTF-32LEの7種類が定められている。
>文字符号化形式との違いは、文字符号化形式がプログラム内部で文字を
>扱う場合に符号なし整数として文字を表現する方法なのに対し、
>文字符号化方式は入出力時にバイト列として表現する方法である。
>UTF-8は符号単位が8ビットであるため区別する意味はない。

尚意味がわかりません。
UTF-8 は1バイトだけ、
それ以外はマルチバイト、しかも一定でない2バイトまたは4バイトで、
2バイト文字なら2バイト単位、4バイト文字なら4バイト単位に
文字の区切りというか終わりを「区別する」必要がある。

UTF-8 と解かったなら1バイト文字なのでその手間は無用。

って話かと思われますが、本当にそういう意味なのかは断言できません。
出題者に「これじゃわからんけど、こういう意味か?」と
詰め寄って真意を聞き出してください。

でもまぁこれくらいしか受け取れないなぁ
    • good
    • 0
この回答へのお礼

ありがとう

あるがとうございます。

お礼日時:2021/10/20 09:05

>区別する意味


「何を」が肝心なんじゃない。
質問文だけではその背景が全然見えないので回答できません。
    • good
    • 0
この回答へのお礼

ごめんなさい。

Unicodeでは文字符号化方式としてUTF-8、UTF-16、UTF-16BE、UTF-16LE、UTF-32、UTF-32BE、UTF-32LEの7種類が定められている。文字符号化形式との違いは、文字符号化形式がプログラム内部で文字を扱う場合に符号なし整数として文字を表現する方法なのに対し、文字符号化方式は入出力時にバイト列として表現する方法である。UTF-8は符号単位が8ビットであるため区別する意味はない。ここです

お礼日時:2021/10/19 17:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング