前提・実現したいこと
テキストエリアに入力された文字をDBに登録して、別ページで表示させようとしています。
入力→登録→表示
上記の内容で表示だけがうまくいきません。
使用しているのは
mysql2
activerecord
sinatra
です。
発生している問題・エラーメッセージ
mysqlに保存したレコードが正常に表示されません。
mysql command line でselect * from texts を入力した場合下記が表示されます。
+--------+--------------------+
| number | value |
+--------+--------------------+
| 1 | テスト |
| 2 | テスト投稿 |
+--------+--------------------+
これを後々sinatraで作ったページに表示させようとしていますが、テスト実行の段階で失敗します。
sinatra上でも同じように表示されています。
require 'active_record' require 'mysql2' ActiveRecord::Base.establish_connection( :adapter => 'mysql2', :host => '******', :username => '*****', :password => '*****', :database => '*****', :charset => 'utf8', :encoding => 'utf8' ) class Text < ActiveRecord::Base self.table_name = 'texts' end Text.all.each do |d| p d end
このような形で実行すると
@ #<Text number: 1, value: "\u767B\u9332\u3059\u308B\u3088">
@ #<Text number: 2, value: "\u3082\u3046\u3044\u3063\u3061\u3087">
こうなります。
pをprintに変更すると
Text.all.each do |d| print d end
@ #Text:0x000000000449ef40#Text:0x0000000004495fd0
こうなります。
mysqlの文字コード設定は変更しています。
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/18 03:05
2018/11/18 03:09