- ベストアンサー
javascriptのescape関数とは?
- javascriptのescape関数は、文字列をISO-Latin-1コードに変換する関数です。
- ひらがなの「あ」は「%82%A0」と変換されますが、ブラウザによって結果が異なる場合もあります。
- Latin1の表には「あ」は含まれていないため、Latin1ではひらがなを扱えないと思われます。
- みんなの回答 (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点。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10359)
>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と認識しています。 宜しければ、ご回答宜しくお願い致します。