プロフィール

あず/asbntby

Author:あず/asbntby
ネットゲーム「人狼」プレイヤー(最近は頻度低下中)。
人狼クローン「人狼物語」開発中。
あず開発室
自己紹介(?)

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

あずぶろぐ
とりあえずだらだらと。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

改行コードの扱いに関するちょっと濃い話の続き
以前ちょっと濃い話とかちょっと濃い話とかしていた分の続きなんですが。


一部の携帯で属性値内の 
 が空白に変換されて送信されるという現象が発覚したので、Beta 8 で 
 から [[br]] に変えて逃げるようにしました。


 が空白になるとかなんだか面白い挙動だなあとか、この時は思っていたんですが。

> CDATAは、文書文字集合中の任意の文字の列であり、文字実体をも含む。ユーザエージェントは、この属性値を次のように解釈する必要がある。
>
>  ・文字実体は文字で置き換える。
>  ・改行文字LFは無視する。
>  ・個々の改行文字CRあるいはタブ文字は、1つの空白文字で置き換える
(参照:6.2 SGML基本形式(和訳) / 6.2 SGML basic types(英文))

仕様通りの挙動でした。

という事は、ちょっと濃い話の時に書いた「何も考えない方式」はやっぱりアウトなのね。ぬー。


ところで、ここにある「文字実体は文字で置き換える」っていうのが割と曲者っぽいんですが。

24村で発覚したんですが、どこかの窓から投げ捨てたいブラウザで数値文字参照を属性値内に入れて送信すると、文字によってはわざわざ文字実体参照に変換して送信するみたいです。
たとえばうちで É と書いて発言すると、é に変換して送ってきます。

これ、この辺りの仕様を変に実装してわけわからん事になってるんじゃないですか?
数値文字参照 → Unicode文字に展開 → Shift-JIS に変換 → Shift-JIS に該当する文字が無い! → 文字実体参照へ再変換 ……とか。

ぶっちゃけ文字実体参照まで通すのは私の気力的に無理なので、当該ブラウザで数値文字参照を含む発言を書いて変な事になったら諦めて下さい(おい


追記:いま読み直して気付いたけど、「文字実体は文字で置き換える」っていうのも変な表現だなあ、これ。「文字参照は文字で置き換える」という意味で捉えたんだけど、合ってるんだろうか。

追記2:なんか違う気がしてきた。SGML の「実体」を理解していないのがバレバレですか、そうですか。
スポンサーサイト
この記事に対するコメント

プレビューでおかしいことが気付いたのならば、ブラウザ変えて発言とかできるのだけど、実行してしまうまで分からないなんてー!
それっぽいものはいったん発言お試し村みたいな所で試してみるのが一番でしょうね。
しかし本当に、某ブラウザは何をしておるのだブツブツ。
【2007/02/08 16:31】 URL | melonko #K97lpksc [ 編集]

あはは(笑
なんせ、プレビューが間接原因ですからね(笑
某ブラウザはびっくり箱ですのう(違
【2007/02/08 20:56】 URL | あず/asbntby #lMvUdC9g [ 編集]

空気を読まず
display:none;なテキストエリアに値を保持しといたらまずいのん?
とか言ってみる。

やったことないので完全思いつきだけど……
【2007/02/09 13:11】 URL | Felean #- [ 編集]


どうしよう話が難しくてわからない。
なんか天国は全部URLエンコードしてごまかしてました。
【2007/02/09 13:56】 URL | BUTA #VWFaYlLU [ 編集]

Σなんかコメントが一杯付いてるー?!
>Feleanさん
スタイルシートを利用するのはと良い解決策の一つですね。
聞いたところによると、他にも read only にした textarea要素 をスタイルシートで通常のテキストっぽく見せるなんてアイディアもあるらしいです。

が、うちの(かなりどうでもいい)ポリシーに、「テキストブラウザでもそれなりに」というのがあるので、「スタイルシートオフの状態で textarea要素が見えてしまうのはちょっとなあ……」という辺りがあるんですよ。なので、そのやり方は採用を見送りました。

>BUTAさん
ぶw なるほど、それが実は一番確実なのかも。
【2007/02/09 18:14】 URL | あず/asbntby #lMvUdC9g [ 編集]


フォームから送られてきたデータ何だから
もいっかい送るとか無駄だからしない。

って解決策じゃダメ?
【2007/02/10 01:52】 URL | Aileron #- [ 編集]

別CGIですが
フォームデーターは全てBASE64エンコードで埋め込んでました。
激しく無駄な事している気がしてなりませんでしたけど。
【2007/02/10 11:12】 URL | みかり #3c3FsZ/c [ 編集]

割り切ったならアリなんですが(笑
>Aileronさん
発言内容をサーバ側にキャッシュしておくってやり方ですか? 実はうちの修正ボタンはそんな動きをしていたりします。
# でも発言修正は四国式の方がエレガントだよなあとか今更ながらに思ってたりとか。

ただ、発言となると・・・「発言プレビュー → 発言」の順で操作してくれるとは限らないんですよね。プレビューを複数表示しておいて連続発言するという手法とか。なので、発言には採用しなかったという経緯がありますです。
【2007/02/10 11:27】 URL | あず/asbntby #lMvUdC9g [ 編集]

なんだってー!(笑
>みかりさん
色んな手法がありますのう(笑)。結構個性が出ますね、この辺り。
【2007/02/10 11:29】 URL | あず/asbntby #lMvUdC9g [ 編集]


この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://asbntby.blog56.fc2.com/tb.php/86-f4a3f702
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。