29

d3.v3 の縮小版のローカル コピーの使用から開発版に切り替えました。縮小版を使用すると問題なく動作しましたが、 http://d3js.org/d3.v3.jsのローカル コピーを使用すると、次の行を参照してタイトルにエラーが表示されます。

var € = Math.PI, µ = 1e-6, d3_radians = € / 180, d3_degrees = 180 / €;

ホストされたファイルを含めると、正常に動作します。

4

2 に答える 2

65

問題は、D3 を ISO-8859-1 文字エンコード (多くの場合ブラウザーのデフォルト) で提供しているのに対し、D3 は UTF-8 エンコードで提供する必要があることです。通常、これは、読み込み中の HTML ページの上部にメタ タグがないために発生します。

<!DOCTYPE html>
<meta charset="utf-8">

d3js.orgGitHub Pagesによって提供され、Content-Type 応答ヘッダーで文字セットを指定していないため、メタ指定の文字セットが必要です。したがって、文字セットは、読み込み中の HTML ドキュメントから推測されます。

必要に応じて、script タグに charset 属性を指定できます。キャッシュされたコピーは、最初にアクセスしたときの文字エンコーディングを保持するため、テストの前にブラウザーのキャッシュをクリアしてください。

<script src="http://d3js.org/d3.v3.js" charset="utf-8"></script> 

変数名が同等の ASCII に置き換えられるため、縮小版ではエラーは発生しません。(フォーマット文字列内の UTF-8 文字が同様にエスケープ シーケンスに置き換えられた場合、私は思い出すことはありませんが、すべての場合に D3 を UTF-8 として提供することをお勧めします。)

ブラウザでソースを表示してからコピー アンド ペーストを使用して D3 をダウンロードした場合にも、エンコードの問題が発生する可能性があります。そのため、 d3.v3.zipのダウンロードをお勧めします。

于 2013-01-13T06:33:10.867 に答える
3

それは間違いなくエンコーディングの問題です。それに焦点を当ててみてください。

投稿したリンク ( http://d3js.org/d3.v3.js )を Chrome で開くと、2 バイト文字も表示されます。

 var π = Math.PI, ε = 1e-6, d3_radians = π / 180, d3_degrees = 180 / π;

「ページを名前を付けて保存...」でファイルをかろうじて保存し、Sublime Text ( http://www.sublimetext.com/ ) などのエディターで開くと、正常に動作し、次のように表示されます。

var π = Math.PI, ε = 1e-6, d3_radians = π / 180, d3_degrees = 180 / π;

このダウンロードしたファイルを自分のプロジェクトで使用しようとしましたが、問題ありません。

于 2013-01-08T15:04:04.167 に答える