[#46093] 質問:mingw環境でのtcltklib.soのコンパイル — Dice <rubyist@...>

Diceです。

12 messages 2009/06/16

[ruby-list:46125] Re: RoR での日本語コ−ド指定方法

From: しん <dezawa@...>
Date: 2009-06-24 04:21:57 UTC
List: ruby-list #46125
出沢です

ありがとうございました。
 #日本語コードでは別の問題がでてきたので、このポストの最後に書きます。

> 
> 少なくともrails-2.1.0では
> 
> config/environment.rb:
> Rails::Initializer.run do |config|
>   #...
> end
> $KCODE='SJIS'
> 
> としたら効きます。

これで直りました。
あるファイルを UTFでsaveすると実行時にエラーが、
SJISでsaveすると rake db:fixtures:load でエラーがでる
というわけの判らない症状に悩んでいたのですが、それも直りました。

 config/environment.rb:
 $KCODE='SJIS'
 Rails::Initializer.run do |config|
   #...
 end

とやっていてうまく行かなかったのですが、 
> rails-2.1.0以降は
>     def initialize_encoding
>       $KCODE='u' if RUBY_VERSION < '1.9'
>     end
> という処理が
> 
> config/environment.rb:
> Rails::Initializer.run do |config|
>   #...
> end
> 
> の時点で実行されるので

これだったのですね。

> 個人的には、日本語リテラルはプログラム中には書かずに
> GetTextやDBを使って外部に出したほうが良いと思います。

最後はそこかな、と覚悟はちょっとしていました。
 

別の日本語コード問題がうまく直ってきていません。
 ./script/server でWEBrickを立ち上げて試しています。
日本語が化け、メニューから文字エンコーディングを直さないとだめです。
ソースを見ると header には 
 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">

が入っています。ソースをローカルに落として開くと期待通りです。

tcpdumpしてみると、ソースを送る前の情報の中に、以下のように utf-8 が
指定されています。
    HTTP/1.1 200 OK
    Etag: "9bd******fbe96"
    Connection: Keep-Alive
    Content-Type: text/html; charset=utf-8
    Date: Thu, 25 Jun 2009 04:51:51 GMT

-c オプションで文字コードを指定できると書いてある本も有るのですが、
私のところのバージョンではそうではないようです。
この部分の記述はどこで変更できるのでしょうか。

In This Thread