[前][次][番号順一覧][スレッド一覧]

rails:245

From: take_tk <ggb03124@n...>
Date: Tue, 12 Jul 2005 11:21:26 +0900
Subject: [rails:245] ソースに漢字がかけない。

たけ(tk)です

まあ、どうにかなったのですが、

(1)Railsのソースに漢字を書く場合にはutf-8でなければならない。つまり、
utf-8で書き込めるエディタがないと、漢字を書けない。

(2)utf-8からsjisへの変換はiconvでしか出来なかった。nkfやkconvでは文字
化けしてしまった。

という事が分かりました。

みなさんは、どんな風にしていますか?

(3)漢字のソースは read+conv+eval で読み込む?

(4)Railsの$KCODEを変える?

(5)その他。

----
$(rails_app)/app/models/aite.rb

require "iconv"

class Aite < ActiveRecord::Base
  # -- KANJI written in UTF8 --
  @@human_names = {
      :aitecode => "コード",
      :aitename => "名称",
      :address => "住所",
    }.inject({}){|hash,kv| k,v=kv ; hash[k]=Iconv.iconv('SHIFT_JIS','UTF-8',v) ; hash }

  def self.humanize(name)
    name = name.to_s
    ret = @@human_names[name.downcase.intern] || name.to_s.humanize
  end
end
----

----
$(rails_app)/app/views/aites/list.rhtml
<h1>Listing aites</h1>

<table>
  <tr>
    <th>Edit</th>
<% for column in Aite.content_columns %>
    <!-- FROM column.human_name -->
    <th><%= Aite.humanize(column.name) %></th>
<% end %>
  </tr>
    
<% for aite in @aites %>
  <tr>
    <td><%= link_to 'Edit', :action => 'edit', :id => aite %></td>
  <% for column in Aite.content_columns %>
    <td><%=h aite.send(column.name) %></td>
  <% end %>
    <td><%= link_to 'Show', :action => 'show', :id => aite %></td>
    <td><%= link_to 'Destroy', {:action => 'destroy', :id => aite}, :confirm => "Are you sure?" %></td>
  </tr>
<% end %>
</table>

<%= link_to "Previous page", { :page => @aite_pages.current.previous } if @aite_pages.current.previous %>
<%= link_to "Next page", { :page => @aite_pages.current.next } if @aite_pages.current.next %>

<br />

<%= link_to 'New aite', :action => 'new' %>
----

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->     245 2005-07-12 04:21 [ggb03124@n...       ] ソースに漢字がかけない。                
       246 2005-07-12 04:33 ┣[yu1@t...            ]                                       
       248 2005-07-12 05:34 ┗[stoyan@g...         ]