4

Ruby on Rails 3を使用してヘブライ語でWebサイトを作成することに興味があります。問題は、ヘブライ語をビューに入れると、サポートされていないため、UTF-8を追加する必要があると言われることです。

私はしばらくこれに取り組んできました、そして私はこれをする方法を見つけることができないようです。私もSqlite3を使用しており、ヘブライ語の文字列も保存したいと思います。

どうすればこれを達成できますか?

私が与えられたエラーコードは次のとおりです。

Your template was not saved as valid UTF-8. Please either specify UTF-8 as the encoding for your template in your text editor, or mark the template with its encoding by inserting the following as the first line of the template:...

編集:

問題は、ファイルがUTF-8形式のファイルであるにもかかわらずUTF-8形式でファイルを保存しないNotepad++で作業していたことでした。ファイル形式を変更することで解決しました。

4

5 に答える 5

2

.rbファイルの最初の行に次のように追加してみてください。

# encoding: utf-8

そしてあなたの最初の行に.erb

<%# encoding: utf-8 %>

encoding: utf-8およびcoding: utf-8とは同等です。

お役に立てれば。

于 2011-02-02T07:52:27.690 に答える
2

データベース構成で、utf-8がデフォルトの文字セットであり、latin1ではないことを確認してください。
MySQLを使用する場合は、「MySQLServerインスタンス構成ウィザード」で変更してください。

編集:このコードをアプリケーションコントローラーに入れてみてください:

class ApplicationController < ActionController::Base
before_filter :set_charset

def set_charset
@headers["Content-Type"] = "text/html; charset=utf-8"
end
end

この記事の詳細を読む:http://www.dotmana.com/?p = 95

于 2011-02-04T09:04:50.873 に答える
2

notepad ++を使用している場合は、最初にエンコーディングを「Encode in UTF-8」に設定してから、コーディングを開始します。すでにファイルを作成/保存している場合は、エンコーディングタイプを変更するだけではうまくいきません。既存のコードのコピーを保持してから、既存のファイルを削除し、notepad ++を開いて、最初にエンコードを設定し(UTF-8でエンコード)、コードの書き込み/コピーを開始する必要があります。このようにして、utf-8エンコーディングが保証され、ファイルの先頭に「#encoding:UTF-8」を付ける必要がなくなります。

于 2012-12-06T06:07:08.133 に答える
1

あなたが置くことができます

config.encoding = "utf-8"

あなたのconfig/application.rb中でこれはに相当します

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

これは、次のように配置するのと同じです。

# encoding: UTF-8

または、すべてのファイルの上部にあるBOM。

これにより、railsアプリのすべてのファイルでutf-8がグローバルに許可されます。すべてのrubyファイルにグローバルオプションが必要な場合は、rubyオプションを使用して、次のように環境変数-Kuを介して設定できます。RUBYOPT

export RUBYOPT=-Ku 
于 2012-11-08T16:12:15.080 に答える
0

これは、ファイルエンコーディング自体が原因である可能性があります。エディタ/IDEプリファレンスでプロジェクトのデフォルトエンコーディングとしてUTF-8を設定していることを確認してください。

編集:

次のコマンドを使用して、ファイルのエンコードを確認できます。

file -I myview.erb.html

(これは大文字の「i」です)。

于 2011-02-04T00:13:10.577 に答える