ramazeで文字コードをShift JISにするには(続き)
ramazeで文字コードをShift JISにするには - NAT’s Programming Champloo
また↑の続き。
トラックバック頂きました。
この場合だと,ビューに限らず文字コードが関係する所はShift_jisで用意したりとかになると思うので(flashとか),そういう所にフックを書けることは想定してないような(文字コードは大抵統一される).
Ramazeの事後処理 - はてなかよっ!
なるほど、文字コードが関係するところはShift JISで統一した方が、すっきりしそうですね。ありがとうございます。
というわけで、ソースファイルの文字コードをShift JISで統一するように修正してみました。
(1) ソースファイルの文字コードをShift JISに変換して、インタプリタに渡すオプションに -Ks を指定
#!/usr/local/bin/ruby -Ks
(2) 外部から入力する文字はtosjisメソッド(require 'kconv'必要)でShift JISに変換
url = 'http://spreadsheets.google.com/pub?key=pS_Iu-LTUb202uc2p8lQoOw&gid=0' doc = open(url).read.tosjis
(3) レスポンスのヘッダにはShift JISを指定
def layout %{ <?xml version="1.0" encoding="Shift_JIS"?> <html> # ...途中省略... </html> } end
Ramaze::Global.content_type = 'text/html; charset=Shift_JIS' Ramaze.start
と、こんな感じで修正しました。
明示的にtosjisメソッドで文字コード変換するのが(2)だけになるので、コードがすっきりしました。