1

CKEditor と呼ばれる JavaScript WYSIWYG テキスト エディターを使用しています。エディターには、ユーザーがテキスト エディターに入力した内容を HTML でマークアップするソース ビューがあります。 エディタがこのソース ビューに非改行スペース ( ) を挿入することがありますが、これは問題ありません。

すべてが開発マシンで正しく動作しているように見えたので、運用サーバーにデプロイしました。この時点で、奇妙な Â 文字 ( Â) がテキストに挿入されているのが見え始めました。いくつか読んだ後、これが CKEditor バグ追跡ページのいくつかのチケットで報告されていることがわかりました。ckeditor.jscharsetのタグの属性を に設定することで問題を解決できました。scriptUTF-8

私の質問は次のとおりです。なぜscriptタグcharsetは最初に属性を設定する必要があり、なぜ特定のシステムでのみ必要なのですか?

この SO の質問に対する最後のコメントでは、UTF-8 の改行なしスペースのバイト シーケンスは、実際には Â 文字の後に改行なしスペースが続くことに言及していますlatin1(これは ISO-8859-1 ですよね?)。ユーザーがソース ビューに切り替えるたびに、次から次へと別の Â 文字が挿入されるため、これは間違いなく手がかりになる可能性があります。Â&nbspCKEditor フレームワークが非改行スペースを挿入しようとしているかのようですが、それは、次になどに変わりÂÂ&nbspます。すべてのcontent-typeシステム (Chrome デバッガーから表示) はtext/html;charset=ISO-8859-1で、理由はわかりません。すべての Tomcat 構成の Dfile.encoding オプションは に設定されていutf-8ます。タグmetaも.<meta charset="utf-8">

4

1 に答える 1