Railsで使えるGem

Rails4でOpenDocumentText(.odt)を作成~serenity(未完)

投稿日:

StackOverFlowでの質問に返事が来てたよ!ヽ(=´▽`=)ノ

stackoverflow.com/questions/13080178/encodingundefinedconversionerror-xe9-from-ascii-8bit-to-utf-8-when-using/15367479?noredirect=1#15367479

ということで早速やってみた

環境

Rails4

前提条件

 

次のようなテンプレートファイルをpublic/filesに配置

screenshot

controller

view

 結果

ケース1 フォント名が英語(MacのLibreOfficeでつくった)

screenshot

英語のバリュー OK!

日本語のバリュー OK!

テンプレートに日本語を含む NG↓

テンプレートに日本語を含む(gemを改造) NG↓

*gemを改造は2ヶ所 StackOvewFlowの回答部分とこちらのpull requestの分

template.rbはこんな感じになる

 

ケース2 フォント名が日本語(WindowsのLibreOfficeでつくった)

英語のバリュー NG↓

英語のバリュー(gemを改造) OK!

日本語のバリュー NG↓

テンプレートに日本語を含む NG↓

 

結論

serenityでマルチバイト文字をつかう場合は、1.フォント名などの設定につかう場合、2.テンプレートに代入する値としてマルチバイト文字をつかう場合、3.テンプレート本文にマルチバイト文字をつかう場合が想定される

binmodeにすると1の場合でマルチバイト文字を使ってもエラーが出なくなる

いずれにしても、3の場合ではエラーが出る

2の場合で日本語のバリューでもエラーが出るときがある理由がまだよくわからない

なんもかんも政治が悪い

-Railsで使えるGem
-

執筆者:

関連記事

ActionCableのサンプルをみてみた

By: Samantha Brough – CC BY 2.0 目次1 ActionCableとは2 rails4での利用3 redisサーバーの準備4 cableサーバーの準備5 チャッ …

no image

Rubyでffmpegのラッパーを使う~streamio-ffmpeg

  github.com/streamio/streamio-ffmpeg rubyでffmpegが扱える高機能ラッパー 導入 [crayon-58ac2b7f9f49d218722603/ …

Rails3.2でhtml5で取得した位置情報をAjaxで住所表示する~geocoder

    HTML5ではブラウザからユーザーのPCの位置情報を取得することができるGeoLocation APIというものがある (もちろんデフォルトではユーザーに確認をする設定にな …

Rails3.2でフォームの順番をjQuery UI sortableで並べ替えてSubmit~acts_as_list

Railsのテーブル並び替えを実装する

    環境 RailsにTwitter Bootstrapを設定する~twitter-bootstrap-rails 参考 #147 Sortable Lists (revise …