/ 最近 .rdf 追記 編集 設定 本棚

脳log[20110519] lostと lots of? だとしても informationに lots?



2011年05月19日 (木) Logicoolの製品情報ページ。URLのフラグメント(ハッシュの後ろ)と onclickハンドラで小賢しい見た目の操作をしてるけど「戻る」に対応していない。読み手の感覚として明らかにページ移動をしている(ヘッダ・フッタといったテンプレートを除いてページ全体が書きかわってる)のに、URLが変わっておらず履歴にも残っていないからだ。枝葉にこだわるなら徹底的にやりな。一方ダイソンは……クエリストリングを使い、スクリプトが有効ならページを動的に書き換え、無効化されていても情報を表示できないなんて間抜けはおかさなかった。何が主で何が従かがわかってる。

最終更新: 2011-05-19T13:48+0900

[Ruby] lostと lots of? だとしても informationに lots?

7. In app code, never use force_encoding to convert BINARY data into a particular encoding. By the time you've reached app code, you have lost the information about which encoding is being used. Instead, find where the String came into Ruby, and fix it to set up the encoding based on the information it knows.

アプリケーションコードの場合、バイナリデータを特定のエンコーディングに変換するために force_encoding を決して使わないこと。アプリケーションコードをいじっているのであれば 使用されているエンコーディングに関する情報をたたくさん持っているはずである。 この場合、その文字列がどこからRubyにやってきたかを突き止め、わかっている情報に 基づいてエンコーディングを設定するように修正すること。

いまもって Ruby 1.9のエンコーディングに関するベストプラクティスがわからないので、すごくためになるリスト。7はこう理解した。

(文字列のエンコーディング情報が失われた)末端コードで、(その場で必要とされるエンコーディングに基づいて場当たり的に) force_encodingしないこと。その文字列の来歴をたどって一番根っこ(※ライブラリの修正が必要かも)で正しい情報(※ないのなら慣習に従うか、その不完全なプロトコルを捨てる)に基づいて force_encodingすること。(末端コードで必要に応じて行うのは encodeだったり encode!)