-PR-
解決済み

「クォート」「エスケープ」「エンコード」の違い

  • 暇なときにでも
  • 質問No.7178275
  • 閲覧数3197
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 61% (476/777)

違いがよく分からないのですが、
用語的には、同じ意味なのでしょうか?

例えば、以下の使い方は、意味が通ってるでしょうか?
・「クォートされるべき文字」をクォートする
・「クォートされるべき文字」をエスケープする
・「クォートされるべき文字」をエンコードする
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 31% (294/933)

>意味が通ってるでしょうか?

あっているといえば(通っている)、あっているし、違うといえば違う。

その3つ、全部違う事です。似た場面で、同じ効果を持つので、同じように使われる事があるだけで、違う事を指しています。

例えば「エスケープ」

これは
http://ejje.weblio.jp/content/Escape

が訳ですが、

プログラム言語(HTMLやJavaScriptなどスクリプトやマークアップ言語も)では、

http://hodade.adam.ne.jp/seiki/page.php?study_escape

このような意味です。
「これらの文字を、通常の文字列として認識させる場合は、エスケープしてください」

特定の予約語などキャラクター文字は、その言語の書式上では特殊な意味をもってしまうので、「エスケープして」つまり、「はずれるとか逃れる」という意味で使う。

同じ効果として、「クォート」すると言う操作もある。これは上記のエスケープと違い、文字列(数字とかキャラクターも含む)を特定のマークで囲う。行為の事を指す。

そのまま、「クォート」しないで記述すると、文字列として扱わずに、プログラムの命令文として効果を発揮していまったり、文字列を、文字型として定義させ、認識させることです。

これを大きく言えば、上記の「はずれるとか逃れる」の意味に含まれるが、用途は全く違います。


エンコードは、上記2つと全く違い、元の文字を特定の方式にしたがって、別の文字列に置き換える事をさします。効果としては、エスケープ効果にも役立ちます。

例えば、文字列にスペースを含む物が渡す事ができない場合、エンコードすると、スペースも文字列として変換されるので、エスケープした効果と同じになります。


結果の効果から見ると、質問の3つの文は、特定のシュチュエーションを考えれば成り立つが、それぞれ意味が違うので、ちゃんと何をすることが、エンコードと言うのか認識してから文献をよみましょう。
お礼コメント
re999

お礼率 61% (476/777)

回答ありがとうございました。

>あっているといえば(通っている)、あっているし、違うといえば違う。
>その3つ、全部違う事です。似た場面で、同じ効果を持つので、同じように使われる事があるだけで、違う事を指しています。
>エンコードは、上記2つと全く違い、元の文字を特定の方式にしたがって、別の文字列に置き換える事をさします。効果としては、エスケープ効果にも役立ちます。
説明、大変分かりやすかったです。
勉強になりましたー
投稿日時 - 2011-12-10 11:21:14
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル13

ベストアンサー率 31% (294/933)

もう一つおまけ。 エンコードをネットで調べると http://search.yahoo.co.jp/search?p=%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt デジタル信号化、暗号化と言う意味であることが分かる。 暗号化(エ ...続きを読む
もう一つおまけ。

エンコードをネットで調べると

http://search.yahoo.co.jp/search?p=%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt

デジタル信号化、暗号化と言う意味であることが分かる。

暗号化(エンコード(符号か))、復号化(デコード)

と言うこと。

しかし、

http://search.yahoo.co.jp/search?p=%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E9%96%A2%E6%95%B0&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt

なんて検索すると、Wikiとは違う説明の話になる(だからと言ってそのページWikiは間違っているわけではない)。

そう、その分野では、違って使われる事が多いので、プログラム言語で言っているのか、映像などデジタル化での話しなのか文脈から判断するしかない。

http://www.phpbook.jp/func/string/index5.html

http://pbs.darkgray.net/tips/tipshow.php?textserial=4

質問内容も、それぞれの単語の英語の意味で捉えてしまうと、みんな同じにみててくるが、ちゃんと、それぞれプログラム言語では、なにをすることが「クォート」「エスケープ」「エンコード」なのかネット上で調べれば、すぐわかることです。
お礼コメント
re999

お礼率 61% (476/777)

追加説明、ありがとうございましたー
投稿日時 - 2011-12-10 11:21:47


  • 回答No.3
レベル14

ベストアンサー率 49% (4198/8520)

他カテゴリのカテゴリマスター
クォートとエスケープは現状では同じ意味として使われています。 本来は、 クォート:「決まった文法の中で特別な意味を持った文字の特別な意味をなくしその文字そのものと扱いたい時に行うこと」 エスケープ:「文字に元の意味で無い別の意味を与えるときに行うこと」 と全く別なのですが。 クォートの例: ・カンマを区切りで無くカンマという文字そのものとして扱うために引用符で囲む  CSV形式で、 abc,def,& ...続きを読む
クォートとエスケープは現状では同じ意味として使われています。
本来は、
クォート:「決まった文法の中で特別な意味を持った文字の特別な意味をなくしその文字そのものと扱いたい時に行うこと」
エスケープ:「文字に元の意味で無い別の意味を与えるときに行うこと」
と全く別なのですが。

クォートの例:
・カンマを区切りで無くカンマという文字そのものとして扱うために引用符で囲む
 CSV形式で、 abc,def,"hi,jk",lmn
・引用符の中で引用符自体を引用の終わりを意味するので無く引用符文字自体として扱いたい
 VisualBasicだと、"abc""def" の用に"でクォートする
 他の多くの言語だと、"abc\"def" のように\でクォートする

エスケープの例:多くの言語で文字列の中で \n が改行を表す。\がエスケープ文字

どちらも、" " ' 'で囲ったり、 \ を前置したりするので、混同されて現在は両方ともエスケープと書かれていることが多いです。

エンコードにはいろいろな意味がありますが、クォート・エスケープと混同されるような意味でのエンコードというと、「決まった文法の中で特別の意味を持った文字を、その文字そのものとして扱いたいので別の表現で表すこと」という感じでしょうか。

例:HTMLの中で < はタグの始まりを表すので、< と言う文字自体を表したければ &lt; とエンコードする
お礼コメント
re999

お礼率 61% (476/777)

回答ありがとうございました。

>クォートとエスケープは現状では同じ意味として使われています。
>本来は、
>クォート:「決まった文法の中で特別な意味を持った文字の特別な意味をなくしその文字そのものと扱いたい時に行うこと」
>エスケープ:「文字に元の意味で無い別の意味を与えるときに行うこと」
>と全く別なのですが。
この説明、大変分かりやすかったです。
参考になりましたー
投稿日時 - 2011-12-10 11:23:11
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ