0

アスキー コード チャートによると、「ü」は 129 (10 進数) です。しかし、 trace("ü".charCodeAt(0)) を実行すると、答えは 252 になります。これは明らかに間違っています。String.charCodeAt() は 0-127 でしか機能しないようです。範囲 128 ~ 255 の char 値と charcode 値をどのように変換しますか?

4

1 に答える 1

0

「拡張 ASCII」と呼ばれる文字セットは複数あるため、この用語にはあまり意味がありません。ASCII 自体はめったに使用されません。

お気づきのように、使用している文字セットとエンコーディングを知ることが重要です。一部のライブラリは「プラットフォームのデフォルト」に柔軟に適応できますが、プログラムは一般にそのように記述されておらず、システム間でデータを読み書きする場合、柔軟性は意味がありません。

テキストはありませんが、エンコードされたテキストです。誰かにテキストを渡すとき、エンコーディングもメタデータとして指定しないと、データが失われます。

ActionScript 文字列は、Unicode/UTF-16 コード単位のシーケンスです。charCodeAt()を参照してください。ほとんどの文字セットとは異なり、Unicode にはいくつかのエンコーディングがあります。UTF-16 はそのうちの 2 つです。(整数はビッグ エンディアンまたはリトル エンディアンで格納され、UTF-16 コード単位も同様です。UTF-16 は、プラットフォームに応じて UTF-16BE または UTF-16LE のいずれかを意味しますが、文字列で BOM を使用することにより、データ自体バイト順を指定し、どの Unicode エンコーディングが使用されているかを示すことができます。)

ü は、値が 252 の 1 つの UTF-16 コード単位として格納されます。Unicode 文字 'LATIN SMALL LETTER U WITH DIAERESIS' (U+00FC)またはUnicodeData.txtを参照してください。

于 2015-04-03T00:02:42.800 に答える