Railsの日本語処理に関する問題です。

salesforceと連携してアプリケーションを作ったのですが、うまく日本語表示ができません。
Rails上のアプリからブラウザを使って追加と編集を日本語で行うと、salesforce上のデータベースには日本語で反映されるのですが、それをRails上で取得してブラウザで該当の文字を確認すると、代わりにコード(?)が表示され、日本語が正しく表示されません。具体的な解決方法をご教授下さい。ちなみに、英数は正しく表示されます。また、salesforceを使わずに一般的なRailsのアプリケーションを作成した場合は、日本語・英数共に正しく表示されます。

■環境
rails 2.3.8
ruby 1.8.7
mac os x 10.6.8

■表示される日本語とコードの関係
鈴木→\351\210\264\346\234\250
一郎→\344\270\200\351\203\216
あ→\343\201\202
い→\343\201\204

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/09/25 14:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:techmedia-think No.1

回答回数46ベストアンサー獲得回数13

ポイント75pt

salesforceとRailsのアプリで使用している文字コードが違っているのでは無いでしょうか?まずそれぞれで使用している文字コードが何か確認すると良いかと思います。

id:puriketu99

回答ありがとうございます。

下記のいずれかなのかなーと想像しています。参考:http://goo.gl/Ypn90

1.utf-8の8進数表記のデコードに失敗している

2.デコードした結果、なぜかutf-8の8進数表記になっている

1番の可能性の方が高そうです。Railsにおけるutf-8の8進数のデコードの方法がわかれば解決しそうな気がしています。

salesforceの資料を軽くあさってみましたが特に書いていなかったので、休み明けにsalesforceに問い合わせて聞いてみます。

もし何かわかるようでしたら、教えて頂けると幸いです。

2011/09/19 12:05:17

その他の回答3件)

id:techmedia-think No.1

回答回数46ベストアンサー獲得回数13ここでベストアンサー

ポイント75pt

salesforceとRailsのアプリで使用している文字コードが違っているのでは無いでしょうか?まずそれぞれで使用している文字コードが何か確認すると良いかと思います。

id:puriketu99

回答ありがとうございます。

下記のいずれかなのかなーと想像しています。参考:http://goo.gl/Ypn90

1.utf-8の8進数表記のデコードに失敗している

2.デコードした結果、なぜかutf-8の8進数表記になっている

1番の可能性の方が高そうです。Railsにおけるutf-8の8進数のデコードの方法がわかれば解決しそうな気がしています。

salesforceの資料を軽くあさってみましたが特に書いていなかったので、休み明けにsalesforceに問い合わせて聞いてみます。

もし何かわかるようでしたら、教えて頂けると幸いです。

2011/09/19 12:05:17
id:techmedia-think No.2

回答回数46ベストアンサー獲得回数13

ポイント75pt

saleseforceの連携方法について詳しくないのですが、Railsのアプリからどのようにして連携されているのか(コードのサンプルなど)記載して頂くことは可能ですか?

id:puriketu99

回答ありがとうございます。

2011/09/23 11:38:45
id:techmedia-think No.3

回答回数46ベストアンサー獲得回数13

ポイント75pt

以下の記事では、force.comのRubyのツールキットをマルチバイトで利用する際にenvironment.rbに「Encoding.default_external='UTF-8'」の指定が必要とありますが、これが関係していたりしないでしょうか?

http://blogjp.sforce.com/2010/12/forcecomruby-on.html

id:puriketu99

回答ありがとうございます。

記事に従い、environment.rbの行末にEncoding.default_external='UTF-8'を加えましたが、Name errorとなりました。

2011/09/23 11:40:53
id:pettann No.4

回答回数128ベストアンサー獲得回数17

ポイント75pt

登録コードの確認やPCの再起動をしてみてはどうでしょうか?

  • id:hagino_3000
    utf-8エンコードされた文字のデコードに失敗してる様に見えるがRailsは良く知らない
  • id:takano32
    もっとよい方法がありそうですが、こちらはどうでしょう。 http://rubist.blog77.fc2.com/blog-entry-67.html
  • id:puriketu99
    コメントありがとうございます。

    はぎーさん
    salesforceの資料を検索しても文字コードについて出てこなかったため、休み明けにsalesforceの営業の人にsalesforce側の文字コードについて聞いてみます。

    たかのさん
    試してみましたがうまくいきませんでした。
    うーん。railsはどのファイルがどこに作用しているのかよくわからない。
  • id:puriketu99
    はぎーさんに対する私の返答はおかしいですね。すみません。
    SalesforceというよりはRailsのデコードの問題ですね。Railsの資料を漁る方がよさそうですね。ありがとうございます。
  • id:puriketu99
    たかのさんすみません。
    12歳以下も回答できるようにしました。
  • id:a-kuma3
    日本語がコードで表示されてしまうページの response header では、
    Content-Type は text/html; charset=utf-8 となっているでしょうか?
  • id:puriketu99
    コメントありがとうございます。
    はい。Content-Type は text/html; charset=utf-8 と設定されています。
    デコードがうまくいかないページのソースを見てもmetaタグに記入されています。
  • id:a-kuma3
    meta は、あまり信用して無いんですけど、ヘッダではきちんと設定されてるんですね。
    Content-Type で、charset=ISO-8859-1 とかが返ってきてるんじゃないかな、と想像したんですが、違うみたいですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません