はじめての親子ハイキングに挑戦!! >>

【javascriptのescape関数】

javascriptとescape関数の説明に
「escape関数を用いると文字列をISO-Latin-1コードに変換してくれます。」
とあります。

ひらがなの「あ」は「%82%A0」となるらしいのですが、
(ブラウザごとに結果が異なり、自分が試したときはユニコードの「%u3042」へ変換されました)
Latin1ってひらがなはあつかえないとおもってたのですがどういうことでしょうか。
ユニコードの「あ」の3042は符号化文字集合表に定義されているので理解できましたが、
latin1の表http://hp.vector.co.jp/authors/VA014833/HTML32/H
に「あ」は含まれないので理解できませんでした。

どなたかご教示ください。

以上宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>Latin-1の範囲に含まれない文字を16進で表示する、とありますが、その変換ルールはどのように決まるのでしょうか??



文字コードを16進表示して%を前置したものです。

>Latin-1は符号化文字集合の1つなので、Latin-1で定義された文字を表すコードは、文字符号化方式に依存しないと認識していましたが

Latin-1はISO-8859-1という文字集合及びエンコード方式のことです。Unicodeは既存の文字集合を全部含んでいるので、当然その一部にLatin-1文字集合を含みます。

UnicodeはISO-8859-1をコードそのままu0000-u00ffに含んでいるので、ISO-8859-1エンコードと、UnicodeのISO-8859-1文字セット部分のコードは先頭のゼロを除けば一致しますが、これは世界中の文字集合からすると例外的です。JIS文字セットの日本語文字集合はUnicode文字集合に含まれますが、コードは全く異なります。

>ユニコードの「あ」は符号化文字方式がなんであれ、3042と認識しています。

これは正しいですが、シフトJISの「あ」は 82A0 だし、EUC-JPの「あ」は、A4A2 です。JIS区点コードなら4区2点。
    • good
    • 0

>latin1の表

http://hp.vector.co.jp/authors/VA014833/HTML32/H …に「あ」は含まれないので理解できませんでした。

Latin-1の範囲に含まれない文字を、% と 16進数表示で表現すると言うことです。変換した結果は、全部Latin-1の文字です。

もとの文字が、シフトJISの「あ」なら %82%A0 になります。元の文字がUTF-8だったりUTF-16だったりすると別の値に。

この回答への補足

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

>Latin-1の範囲に含まれない文字を、% と 16進数表示で表現すると言うことです。変換した結果は、全部>Latin-1の文字です。

Latin-1の範囲に含まれない文字を16進で表示する、とありますが、その変換ルールはどのように決まるのでしょうか??

>もとの文字が、シフトJISの「あ」なら %82%A0 になります。元の文字がUTF-8だったりUTF-16だったりす
>ると別の値に。

Latin-1は符号化文字集合の1つなので、Latin-1で定義された文字を表すコードは、文字符号化方式に依存しないと認識していましたが(UTF-8でもUTF-16でも同じ結果になる)、根本的に理解が間違っているのでしょうか。
例えば、ユニコードの「あ」は符号化文字方式がなんであれ、3042と認識しています。

宜しければ、ご回答宜しくお願い致します。

補足日時:2010/10/05 19:40
    • good
    • 0

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング