質問 |
||
| 質問者:guci-ok | 全角空白が文字エンティティで送信される | |
|---|---|---|
困り度:
|
自分で管理している掲示板があるのですが、最近「 」と言う文字列が入っていました。(わざと全角で記入、実際は半角) これは空白を意味する文字エンティティのようですが、 これが2つ連続していて、どうも全角の空白を入力しようとしている、 と思えます。私はWindows使いで、このような状況が良く分かりませんが、MACの人たちはこんなことありますか。 書き込んだ人がMACユーザーかは判らないのですが、Windowsでは、 こうゆうことが無いようなので、ここで聞いてみました。 「森おうがい」の環境依存文字を入力すると、文字エンティティが 送信されると言うのは有名ですが、この全角空白は、どうも。 分かる方、御教授願います。 |
|
質問投稿日時:08/04/29 14:56 質問番号:3984807 |
||
回答 |
|
| 回答者:sevenless | それは OS というよりもブラウザの実装の問題ですね。少し古いですが http://www.tagindex.com/kakolog/q1bbs/1601/1886.html などを見ると、 を半角スペースで送信するもの、%A0 とするもの、160 となるもの、nbsp と送信するものなど場合によって色々である事が分かると思います。文字コードによっても変わります。 |
|---|---|
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| |
回答日時:08/06/19 01:12 回答番号:No.4 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | 有り難う御座います。 色々ググッたのですが、ここは見つけられませんでした。 とても参考になりました。 (本当は、もう少し2ちゃんぽく無いサイトが希望です) |
回答 |
|
| 回答者:sevenless |   は non breaking space と言って、「改行しないスペース」を意味します。HTML だと と書くこともありますね。break は line break つまり改行です。 例えば chocolat a la carte という言葉があったとして、普通のスペースならば行の長さが足りないと chocolat a la carte と改行される場合もあるわけです。これを避けて a la carte をひとまとめの言葉として扱いたい場合に、この non breaking space を入れるわけです。そうすれば、同じ文でも chocolat a la carte となるわけですね。 この non breaking space は Mac なら option+space, Wndows でもアプリによって ctrl+space あるいは ctrl+shift+space で入力できます。ですから、それだけでは書いた人が Mac か Windows かは判断できません。 |
|---|---|
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| |
回答日時:08/04/29 19:06 回答番号:No.3 |
|
| この回答への補足 | 今日新たに分かったことです。 この掲示板は、入力→確認→完了の3画面構成になっていて、確認 の画面では入力情報をhiddenに入れていますが、<Re>のような入力に 対応するために、データをURLエンコードしていて、空白は に変換していました。 この が、Windowsではそのままサーバーに返されるのに、 MACの場合は、%A0 になって返ってきていました。 この掲示板はjavaで作成されているのですが、%A0 がどこかで &#160;に変換され、そのまま保管されている感じです。 私はこの掲示板に詳しくないので良く分かりませんが。 このような現象について、説明しているサイトご存知ないですか? |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| 回答者:SAYKA | No1の他には ブラウザ上か、或いは特殊な書式が記述できる物からのコピペによってゴミが混ざる現状じゃないかな。 ここのサイトでも質問や回答にあるリンクが付いているURLを前後の文字含みでコピペすると変なゴミが一緒に入ってくるんだけどそれと似たような感じじゃないかな。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/29 16:52 回答番号:No.2 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| 回答者:harawo | > これは空白を意味する文字エンティティのようですが、 > これが2つ連続していて、どうも全角の空白を入力しようとしている、 > と思えます。 この「文字エンティティ」では、ユニコード(utf-8)で記述することになっていますが、空白(スペース)のユニコードは、20、16進数を10進数に変換すると、32です。 10進数で「160」(16進数でA0)になるのは、NON-BRAKE SPACEという名称のユニコードです。 欧文の文字組では、行末、行頭にスペースがあると、消滅(Brake)することになっていますが、意図してスペースを消さないために使用する文字コードです。HTMLでは、スペースが二個以上連続すると、無視するという規則があるので、ご推測のとおり、半角ふたつ分のスペースを入れようとする入力者の意図が伺えます。 Macintoshで、通常のスペース(20)のかわりにNON-BRAKE SPACE(A0)を使用するということはありません。スペースはスペースです。 その投稿者が、「文字エンティティ」を書き込んでいると判断するほうが、自然ではないでしょうか? |
|---|---|
| 種類:アドバイス どんな人:経験者 自信:自信あり |
|
| |
回答日時:08/04/29 16:15 回答番号:No.1 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | No.2の人もいっしょに、 有り難う御座います。 やはり、何かのコピペでしょうか? 他にも数人いました。 ユーザーエージェントが取れないのが残念です。 |