Techioz Blog

互換性のない文字エンコーディング: レンダリング アクションでの UTF-8 および ASCII-8BIT

概要

  # GET /posts/new
  def new
    if params[:post]
      @post = Post.new(post_params).dup
      if @post.valid?
        render :action => "confirm"
      else
        format.html { render action: 'new' }
        format.json { render json: @post.errors, status: :unprocessable_entity }
      end
    else
      @post = Post.new
      @document = Document.new
      @documents = @post.documents.all
      @document = @post.documents.build
    end

なぜそうなるのか分かりません。

解決策

ここからの解決策: http://rorguide.blogspot.in/2011/06/incompatibility-character-encodings-ascii.html

上記の解決策が役に立たない場合は、Haml テンプレートの一部をファイルにコピー/貼り付けしたか、非 Unicode/非 UTF-8 フレンドリーなエディターを使用しているかのどちらかだと思います。

UTF-8 対応エディターでそのファイルを最初から再作成できる場合。どのプラットフォームにも対応できるものがたくさんあるので、問題が解決するかどうかを確認してください。

場合によっては、次のようなエラーが発生することがあります。

これは通常、2 つの文字列を連結しようとして、一方の文字列にもう一方の文字列の文字セットにマップされない文字が含まれているために発生します。 ISO-8859-1 には UTF-8 に同等の文字がない文字があり、その逆も同様であり、これらの非互換性を持つ文字列結合を処理する方法にはプログラマが介入する必要があります。