5

Joel の Unicode に関するすばらしい記事を(再) 読んでいて、この段落に出くわしましたが、よくわかりませんでした。

たとえば、Hello の Unicode 文字列 (U+0048 U+0065 U+006C U+006C U+006F) を ASCII、古い OEM ギリシャ エンコーディング、ヘブライ ANSI エンコーディング、または数百のエンコーディングのいずれかでエンコードできます。これまでに発明されたものですが、1 つのキャッチがあります。文字の一部が表示されない可能性があります。表現しようとしているエンコーディングで、表現しようとしている Unicode コード ポイントに相当するものがない場合は、通常、小さな疑問符が表示されます。または、あなたが本当に上手なら、箱。あなたはどれを手に入れましたか?-> �</p>

なぜクエスチョン マークがあるのですか? また、「または、あなたが本当に上手な場合は、ボックス」とはどういう意味ですか? そして、彼はどのキャラクターを表示しようとしていますか?

4

4 に答える 4

5

エンコーディング プロセスはエンコーディングが文字をサポートできないことを認識し、代わりに疑問符を使用するため、疑問符があります。「あなたが本当に上手なら」とは、「あなたが新しいブラウザと適切なフォントサポートを持っていれば」、より洗練された代替文字であるボックスを手に入れることを意味します.

Joel の場合、実際の文字を表示しようとしているのではなく、文字どおり Unicode 置換文字U+FFFD REPLACEMENT CHARACTERを含めています。

于 2012-07-11T02:16:18.610 に答える
2

文章がややこしくて、作者が何を言おうとしているのかよくわからない。いずれにせよ、ブラウザ (およびその他のプログラム) によって、文字の問題を処理する方法が異なります。クエスチョンマーク「?」使用されているフォントにグリフがない文字の代わりに が表示される場合があり、その結果、事実上「その文字を表示できません」と表示されます。ブラウザーは代わりに、同じ目的で小さな四角形やその他のインジケーターを使用する場合があります。

ただし、「�」記号は通常、データ エラーを示すために使用される置換文字です。たとえば、文字データが何らかのエンコーディングから Unicode に変換され、Unicode で表現できない文字が含まれている場合などです。ブラウザーは、関連する目的で表示に「�」を使用することがよくあります。これは、適用されている文字エンコーディングで文字を構成しないバイトを含む、文字データの形式が正しくないことを示すためです。これは、あるエンコーディングのデータが別のエンコーディングであるかのように処理されている場合によく発生します。

したがって、「�」は「不明な文字」という意味ではなく、「表示できない文字」という意味でもありません。むしろ、「キャラクターではない」という意味です。

于 2012-07-11T04:43:19.637 に答える
1

生データのバイト シーケンスがデータの文字セットと一致せず、正しくデコードできない場合、疑問符が表示されます。これは、データの形式が正しくない場合、データの文字セットが HTTP ヘッダーまたは HTML 自体で明示的に誤って記述されている場合、他の情報が欠落しているときにブラウザによって文字セットが誤って推測された場合、またはユーザーのブラウザ設定がデータの文字セットを互換性のない文字セット。

データの表示に使用されているフォントにデコードされた文字が存在しない場合は、ボックスが表示されます。

于 2012-07-12T01:56:01.800 に答える
0

まさにその通りです - 一部のブラウザーは、現在知られている文字セット以外の文字に対して「奇妙な文字」または疑問符を表示します。それは彼らの「ねえ、これが何かわからない」というキャラクターです。古いバージョンの Netscape を入手し、スマート クォートを使用している Microsoft Word からテキストを貼り付けると、疑問符が表示されます。

http://blog.salientdigital.com/2009/06/06/special-characters-showing-up-as-a-question-mark-inside-of-a-black-diamond/には適切な説明があります。

于 2012-07-11T02:18:09.343 に答える