2

jQuery を使用してサーバーからテキスト ファイルを取得し、コード ミラー エディターに読み込みます。(これはChromeにあります)

次のテスト文字列を含むテスト ファイルがある場合:

üöIiçgIös

次のように表示されます。

s��Ii�gI�s

jQuery.get() 呼び出しでデータをロードします。Chrome のスクリプト デバッガーを使用すると、jQuery が何らかの方法でデータを変換していることがわかります。基本的には (不十分に) ASCII に変換しています。

直接ダウンロードを使用して、正しいデータがロードされていることを確認しました。Fiddler を使用して、コンテンツ タイプが「text/plain;charset=UTF-8」であることを確認しました。最後に、ページ全体が UTF-8 でエンコードされていることをメニューから確認できます。しかし、jQuery がデータを変換する理由がわかりません。

データをロードするための jQuery コードを次に示します。

jQuery.get(path+file,null,function(data)
{
  var initialContent = data;
  if(!initialContent)
  {
    initialContent = "\n";
  } 

  document.getElementById("fileContent").value = initialContent;
  config.content = data,
  editor = new CodeMirror(document.getElementById("codeMirrorDiv"), config);
},'text');
4

3 に答える 3

1

私は数年間jQueryを使用してきましたが、あなたが説明したようにデータを「変換」するのを見たことはありません。それが可能かどうかさえわかりません。

データが表示されるページの にこれがあることを確認してください<head>:

<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />

また、テキスト ファイルを編集するときは、実際に UTF-8 で編集していることを確認してください。

于 2011-03-12T01:21:16.960 に答える
0

通常、データベースからの間違ったデータが原因です。
データベースに接続した後、次のコマンドを追加してみてください。

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");

これで問題が解決しない場合は、php ファイルに次のヘッダーを追加してみてください。

header('Content-Type: text/html; charset=utf-8');

すべてのファイル (php、html...) は utf-8 エンコーディングでなければならないことを知っておくとよいでしょう。これを行う最も簡単な方法は次のとおりです。

  • メモ帳でファイルを開く
  • ファイル -> 名前を付けて保存
  • 保存する前に、下部のドロップダウン リストでエンコードを選択します
  • 終わり!
于 2014-03-05T10:59:08.423 に答える